Download the PHP package kagagnon/bem-php without Composer
On this page you can find all versions of the php package kagagnon/bem-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package bem-php
Installation
Install via composer with
Optional configurations
Configurations are static properties to the KAGagnon\BemPhp\Helpers\BemHelper
class. You can edit them before using BemPhp
:
How to use
It is recommanded to include a use
statement before using BemHelper
Class. Alternatively, you can create helper functions to shorten the use of the class.
Blocks
You can create a new block with the directive BemHelper::startBlock( $block_name )
. Once the block if finished,
you can use BemHelper::endBlock()
to close the block. BEM block can be nested for sub-module. So this:
is a valid syntax.
Classes
To generate a class, you can use BemHelper::bemClass( [ string|array $element [, string|array $modifiers[, integer $parent_level = 0 ]]] )
.
- Passing no arguments generate the block name.
- Passing a string as first argument generate the block name with an element.
- Passing an array as first argument generate the block name with the modifiers.
- Passing a string and an array generate a block name with an element and its modifiers.
- Passing 2 strings generate a block name with an element and explode the string on spaces to generate the modifiers.
-
Parent level integer allow to use a parent BEM class in nested loops.
Check the examples below:
Conditional modifiers
Sometime, you might want to use conditions to set modifiers such as if it is the first or last iteration of the loop. To do so, you can set your modifiers by passing an array where the key is the classname and the value is the condition. That way, if the condition resolves as true, the modifier will be added to the list.
You can mix conditional modifiers with other modifiers, and it also works with the startBlock
method.
HTML example
Result to :
Create node with startBlock()
You can pass argument to startBlock()
to automatically generate an HTML tag.
To do so, you can pass the tag name as second argument and, optionally, an array of attributes.
You can also skip the tag name and pass an array as second argument. That will create an HTML element base on the default_tag
configuration.
Additionally, if you set create_tag
to true, startBlock()
will always create a tag base on
the default_tag
configuration if only 1 argument is passed.
To pass modifiers to the tag, simply pass _modifiers
in the array: an array for multi-modifiers or a string for single modifier.
Example
Use with Laravel (Blade directives)
This plugin comes with a Laravel integration. You can include the KAGagnon\BemPhp\BemServiceProvider
class in your application service providers list. The following directive will be mapped :
Twig extension
This plugin comes with a Twig integration. You can register the KAGagnon\BemPhp\Twig\BemTwigExtension
in Twig extensions. The following directive will be mapped :