2017 © Pedro Peláez
 

library dom-class-name

A DOM class name generation library (BEM syntax class name builder etc.)

image

ecailles/dom-class-name

A DOM class name generation library (BEM syntax class name builder etc.)

  • Saturday, December 3, 2016
  • by whizark
  • Repository
  • 1 Watchers
  • 0 Stars
  • 7 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

DOM Class Name

Latest Stable Version Latest Unstable Version License ![Build Status][travis-image] ![Coverage Status][coveralls-image], (*1)

Install via Composer

composer require ecailles/dom-class-name

Basic Usage

Block

use Ecailles\DomClassName\Bem\Bem;

// 'block--block-modifier'
$classname = (new Bem())
    ->block('block')->modifier('block-modifier')
    ->value();

Element

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();

Classes

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();

Return Value

Class names as array

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();

Class names as string

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();

Class names as string (implicit type conversion)

use Ecailles\DomClassName\Bem\Bem;

$bem = (new Bem())->block('block')->class('class');

// 'block class'
echo htmlspecialchars($bem, ENT_QUOTES, 'UTF-8');

Explicit Modifiers

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();

Cloning (PHP 5.6 or earlier are also supported)

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();

Prefixing

use Ecailles\DomClassName\Bem\Bem;

// 'prefix-block'
$classname = (new Bem())->prefix('prefix')->block('block')->value();

or, (*2)

use Ecailles\DomClassName\Bem\Bem;

// 'prefix-block'
$classname = (new Bem('prefix'))->block('block')->value();

Custom Separators

Prefix Separator

use Ecailles\DomClassName\Bem\Bem;

// 'prefix__block'
$classname = (new Bem())->prefix('prefix')->prefixSeparator('__')
    ->block('block')->value();

or, (*3)

use Ecailles\DomClassName\Bem\Bem;

// 'prefix__block'
$classname = (new Bem('prefix', '__'))->block('block')->value();

Element Separator

use Ecailles\DomClassName\Bem\Bem;

// 'block-element'
$classname = (new Bem())->elementSeparator('-')
    ->block('block')->element('element')->value();

or, (*4)

use Ecailles\DomClassName\Bem\Bem;

// 'block-element'
$classname = (new Bem(null, null, '-'))
    ->block('block')->element('element')->value();

Modifier Separator

use Ecailles\DomClassName\Bem\Bem;

// 'block-modifier'
$classname = (new Bem())->modifierSeparator('-')
    ->block('block')->element('modifier')->value();

or, (*5)

use Ecailles\DomClassName\Bem\Bem;

// 'block-modifier'
$classname = (new Bem(null, null, null, '-'))
    ->block('block')->modifier('modifier')->value();

The Versions

03/12 2016

dev-master

9999999-dev https://github.com/ecailles/dom-class-name

A DOM class name generation library (BEM syntax class name builder etc.)

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

css html dom bem

30/01 2016

v1.0.0

1.0.0.0 https://github.com/ecailles/dom-class-name

A DOM class name generation library (BEM syntax class name builder etc.)

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

css html dom bem