ecailles / dom-class-name
DOM 类名生成库(BEM 语法类名构建器等)
v1.0.0
2016-01-30 03:15 UTC
Requires
- php: >=5.5.0
Requires (Dev)
- apigen/apigen: ^4.1.2
- crysalead/kahlan: ^2.1.0
- satooshi/php-coveralls: ^1.0.0
- squizlabs/php_codesniffer: ^2.5.0
This package is auto-updated.
Last update: 2024-08-29 04:17:51 UTC
README
通过 Composer 安装
composer require ecailles/dom-class-name
基本用法
块
use Ecailles\DomClassName\Bem\Bem; // 'block--block-modifier' $classname = (new Bem()) ->block('block')->modifier('block-modifier') ->value();
元素
use Ecailles\DomClassName\Bem\Bem; // 'block--block-modifier__element--element-modifier' $classname = (new Bem()) ->block('block')->modifier('block-modifier') ->element('element')->modifier('element-modifier') ->value();
类
use Ecailles\DomClassName\Bem\Bem; // 'block--block-modifier__element--element-modifier class1 class2' $classname = (new Bem()) ->block('block')->modifier('block-modifier') ->element('element')->modifier('element-modifier') ->class(['class1', 'class2']) ->value();
返回值
类名作为数组
use Ecailles\DomClassName\Bem\Bem; // ['block--block-modifier__element--element-modifier', 'class1', 'class2'] $classnames = (new Bem()) ->block('block')->modifier('block-modifier') ->element('element')->modifier('element-modifier') ->class(['class1', 'class2']) ->get();
类名作为字符串
use Ecailles\DomClassName\Bem\Bem; // 'block--block-modifier__element--element-modifier class1 class2' $classname = (new Bem()) ->block('block')->modifier('block-modifier') ->element('element')->modifier('element-modifier') ->class(['class1', 'class2']) ->value();
类名作为字符串(隐式类型转换)
use Ecailles\DomClassName\Bem\Bem; $bem = (new Bem())->block('block')->class('class'); // 'block class' echo htmlspecialchars($bem, ENT_QUOTES, 'UTF-8');
显式修饰符
use Ecailles\DomClassName\Bem\Bem; // 'block--block-modifier__element--element-modifier' $classname = (new Bem()) ->blockModifier('block-modifier') ->elementModifier('element-modifier') ->block('block')->element('element') ->value();
克隆(PHP 5.6 或更早版本也受支持)
use Ecailles\DomClassName\Bem\Bem; $block = (new Bem())->block('block'); // 'block__element1' $element1 = $block->clone()->element('element1')->value(); // 'block__element2' $element2 = $block->clone()->element('element2')->value();
前缀
use Ecailles\DomClassName\Bem\Bem; // 'prefix-block' $classname = (new Bem())->prefix('prefix')->block('block')->value();
或
use Ecailles\DomClassName\Bem\Bem; // 'prefix-block' $classname = (new Bem('prefix'))->block('block')->value();
自定义分隔符
前缀分隔符
use Ecailles\DomClassName\Bem\Bem; // 'prefix__block' $classname = (new Bem())->prefix('prefix')->prefixSeparator('__') ->block('block')->value();
或
use Ecailles\DomClassName\Bem\Bem; // 'prefix__block' $classname = (new Bem('prefix', '__'))->block('block')->value();
元素分隔符
use Ecailles\DomClassName\Bem\Bem; // 'block-element' $classname = (new Bem())->elementSeparator('-') ->block('block')->element('element')->value();
或
use Ecailles\DomClassName\Bem\Bem; // 'block-element' $classname = (new Bem(null, null, '-')) ->block('block')->element('element')->value();
修饰符分隔符
use Ecailles\DomClassName\Bem\Bem; // 'block-modifier' $classname = (new Bem())->modifierSeparator('-') ->block('block')->element('modifier')->value();
或
use Ecailles\DomClassName\Bem\Bem; // 'block-modifier' $classname = (new Bem(null, null, null, '-')) ->block('block')->modifier('modifier')->value();