定制 larakit/lk-html 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

larakit/lk-html

Composer 安装命令:

composer require larakit/lk-html

包简介

[Larakit] Библиотека для Laravel для генерации HTML

README 文档

README

Total Downloads Latest Stable Version Latest Unstable Version License #larakit/lk-html Библиотека для генерации HTML-сущностей на основе PEAR/HTML_Common2

Позволяет работать с элементом HTML как с объектом с использованием цепочки методов, постепенно добавляя, изменяя и удаляя значение аттрибутов элемента, в отличие от других библиотек позволяющих разово инициализировать и сгенерировать элемент.

Для установки:

  1. установить пакет
$ php composer.phar require larakit/laravel-larakit-html
  1. запустить перегенерацию автокомплита
php artisan ide-helper:generate

Основные методы:

  1. Если элемент состоит из двух закрывающих тегов, то содержимое устанавливается методом
$el->setContent($text)
  1. Если элемент состоит из одного тега, то все его аттрибуты устанавливаются методом
$el->setAttribute($name, $value);
  1. Управление CSS - классами заключается в использовании методов (можно несколько раз добавить один класс, все равно в итоговый аттрибут попадут только уникальные классы)
$el->addClass($class)->removeClass($class);

Элемент A (ссылка)

$el = \HtmlA::setHref('/')->setContent('TeXt');
echo $el;

или в шаблоне Twig

{{ html_a('/').setContent('TeXt')|raw }}

результат

<a href="/">TeXt</a>

Элемент Abbr (аббревиатура)

$el = \HtmlAbbr::setTitle('HyperText Markup Language')
    ->setContent('HTML');
echo $el;
$el = \HtmlAbbr::setTitle('PHP: Hypertext Preprocessor')
    ->setContent('PHP')
    ->asInitialism();
echo $el;

или в шаблоне Twig

{{ html_abbr('HyperText Markup Language').setContent('HTML')|raw }}
{{ html_abbr('PHP: Hypertext Preprocessor').setContent('PHP').asInitialism()|raw }}

результат

<abbr title="HyperText Markup Language">HTML</abbr>
<abbr title="PHP: Hypertext Preprocessor" class="initialism">PHP</abbr>

Элемент Area/Map (ссылка)

$map = \HtmlMap::setName('map')->setId('map-123');
$map->addArea()->setShape('poly')
    ->setCoords('1601,15,1602,52,1676,52,1676,205,1590,203')
    ->setHref('/page123');
$map->addArea()->setShape('poly')
    ->setCoords('1676,205,1590,203,1591,170,1440,169,1439,14')
    ->setAttribute('777');
echo $map;

или в шаблоне Twig

{% set map = html_map('map', 'map-123') %}
{% set area = map.addArea().setShape('poly').setCoords('1601,15,1602,52,1676,52,1676,205,1590,203').setHref('/page123') %}
{% set area = map.addArea().setShape('poly').setCoords('1676,205,1590,203,1591,170,1440,169,1439,14').setHref('777') %}
{{ map|raw }}

результат

<map name="map" id="map-123">
  <area shape="poly" href="/page123" coords="1601,15,1602,52,1676,52,1676,205,1590,203">
  <area shape="poly" data-id="777" coords="1676,205,1590,203,1591,170,1440,169,1439,14">
</map>

Элемент Blockquote (цитата)

$el = \HtmlBlockquote::setAuthor('В.И. Ленин')
    ->setContent('Главная проблема цитат в интернете – люди сразу верят в их подлинность.');
echo $el;

или в шаблоне Twig

{{ html_blockquote('Главная проблема цитат в интернете – люди сразу верят в их подлинность.', 'В.И. Ленин')|raw }}

результат

<blockquote>
  <p>Главная проблема цитат в интернете – люди сразу верят в их подлинность.</p>
  <footer>В.И. Ленин</footer>
</blockquote>

Элемент Button (кнопка)

$el = \HtmlButton::setContent('Удалить')
    ->setTitle('Удаление не доступно')
    //классы можно добавлять через пробел
    ->addClass('btn btn-danger')    
    //следом можно добавить еще один класс, даже дублировать предыдущий (вставится только один)
    ->addClass('disabled btn');
echo $el;

или в шаблоне Twig

{{ html_button('Удалить')
    .setTitle('Удаление не доступно')
    .addClass('btn btn-danger')
    .addClass('disabled btn')|raw }}

результат

<button class="btn btn-danger disabled" title="Удаление не доступно">Удалить</button>

Элемент Div (блочная обертка)

$el = \HtmlDiv::addClass('row');
$el->setContent(
    \HtmlDiv::addClass('col-lg-6')->setContent('Attribute')
    .
    \HtmlDiv::addClass('col-lg-6')->setContent('Value');
);    
echo $el;

или в шаблоне Twig

{{
    html_div(
        html_div('Attribute').addClass('col-lg-6')
        ~
        html_div('Value').addClass('col-lg-6')
    )
    .addClass('row')|raw
}}

результат

<div class="row">
    <div class="col-lg-6">Attribute</div>
    <div class="col-lg-6">Value</div>
</div>

Элемент I (курсив) используется для иконочных шрифтов

$el = \HtmlI::addClass('fa fa-bed');
echo $el;

или в шаблоне Twig

{{  html_i().addClass('fa fa-bed')|raw  }}

результат

<i class="fa fa-bed"></i>

Элемент Img (картинка)

$el = \HtmlImg::setSrc('/picture.jpg');
echo $el;
$el = \HtmlImg::setAttribute('data-src',  'holder.js/140x140')
        ->setTitle('A generic square placeholder image with rounded corners')
        ->addClass('img-rounded');
echo $el;

или в шаблоне Twig

{{  html_image('/picture.jpg')|raw  }}
{{  html_image()
        .setAttribute('data-src',  'holder.js/140x140')
        .setTitle('A generic square placeholder image with rounded corners')
        .addClass('img-rounded')|raw
}}

результат

    <img src="/picture.jpg">
    <img data-src="holder.js/140x140" class="img-rounded" 
        alt="A generic square placeholder image with rounded corners">

Элемент Span (инлайновая обертка)

$el = \HtmlSpan::addClass('text-success')
    ->setContent('Groove');
echo $el;

или в шаблоне Twig

{{  html_span('Groove').addClass('text-success')|raw  }}

результат

<span class="text-success">Groove</span>

Элемент Strike (зачеркнутый текст)

$el = \HtmlStrike::setContent('Старая цена: 100руб.');
echo $el;

или в шаблоне Twig

{{  html_strike('Старая цена: 100руб.')|raw  }}

результат

<strike>Старая цена: 100руб.</strike>

Элемент Strong (жирный текст)

$el = \HtmlStrong::setContent('Важный текст');
echo $el;

или в шаблоне Twig

{{  html_strong('Важный текст')|raw  }}

результат

<strong>Важный текст</strong>

Элемент Video

$el = \HtmlVideo::setSrc('http://ste.com/video.mp4');
echo $el;

или в шаблоне Twig

{{ html_video('http://ste.com/video.mp4') }}

результат

<video>
    <source src="http://ste.com/video.mp4" type="video/mp4">
    Тег video не поддерживается вашим браузером
    <a href="http://ste.com/video.mp4">Скачайте видео</a>
</video>

Элемент Table (таблица)

$table = \HtmlTable::addClass('table')->setCaption('Заголовок таблицы');
$tr = $table->addRow();
$tr->addCell()->setContent('Предмет')->asTh()->setRowspan(2);
$tr->addCell()->setContent('Габариты')->asTh()->setColspan(3);
$tr->addCell()->setContent('Вес')->asTh()->setRowspan(2);
$tr = $table->addRow();
$tr->addCell()->setContent('Длина')->asTh();
$tr->addCell()->setContent('Ширина')->asTh();
$tr->addCell()->setContent('Высота')->asTh();
$tr = $table->addRow();
$tr->addCell()->setContent('Стол');
$tr->addCell()->setContent('2000 мм');
$tr->addCell()->setContent('1000 мм');
$tr->addCell()->setContent('900 мм');
$tr->addCell()->setContent('15 кг');
$tr = $table->addRow();
$tr->addCell()->setContent('Шкаф');
$tr->addCell()->setContent('3500 мм');
$tr->addCell()->setContent('600 мм');
$tr->addCell()->setContent('2400 мм');
$tr->addCell()->setContent('65 кг');
echo $table;

результат:

<table class="table">
    <caption>Заголовок таблицы</caption>
    <tbody>
        <tr>
            <th rowspan="2">Предмет</th>
            <th colspan="3">Габариты</th>
            <th rowspan="2">Вес</th>
        </tr>
        <tr>
            <th>Длина</th>
            <th>Ширина</th>
            <th>Высота</th>
        </tr>
        <tr>
            <td>Стол</td>
            <td>2000 мм</td>
            <td>1000 мм</td>
            <td>900 мм</td>
            <td>15 кг</td>
        </tr>
        <tr>
            <td>Шкаф</td>
            <td>3500 мм</td>
            <td>600 мм</td>
            <td>2400 мм</td>
            <td>65 кг</td>
        </tr>
    </tbody>
</table>

larakit/lk-html 适用场景与选型建议

larakit/lk-html 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.16k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2016 年 04 月 25 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「html」 「laravel 5」 「larakit」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 larakit/lk-html 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 larakit/lk-html 我们能提供哪些服务?
定制开发 / 二次开发

基于 larakit/lk-html 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 1.16k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 1
  • 依赖项目数: 3
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-04-25