mirror of
https://github.com/fenom-template/fenom.git
synced 2023-08-10 21:13:07 +03:00
Add licenses
This commit is contained in:
@@ -3,7 +3,7 @@ About Cytro [RU]
|
||||
|
||||
Cytro - самый быстрый, гибкий и тонкий шаблонизатор для PHP, унаследовавший синтаксис от Smarty3 и улучшив его.
|
||||
Пожалуй это единственный шаблонизатор, который не использет ни регулярные выражения, как Twig, ни лексер от BISON, как Smarty3.
|
||||
Вы не найдёте ни одного регулярного выражения в ядре Aspect, но тем не менее ядро простое, компактное и очень быстрое.
|
||||
Вы не найдёте ни одного регулярного выражения в ядре Cytro, но тем не менее ядро простое, компактное и очень быстрое.
|
||||
|
||||
* Скорость. Разбор шаблонов постоен на основе нативного [токенайзера](http://docs.php.net/tokenizer). Шаблон преобразуется в исполняемый PHP код,
|
||||
который может быть закеширован на файловой системе.
|
||||
|
@@ -3,7 +3,7 @@
|
||||
|
||||
|
||||
```
|
||||
$aspect->addModifier(string $modifier, callable $callback);
|
||||
$cytro->addModifier(string $modifier, callable $callback);
|
||||
```
|
||||
|
||||
* `$modifier` - название модификатора, которое будет использоваться в шаблоне
|
||||
@@ -16,7 +16,7 @@ For example:
|
||||
```
|
||||
|
||||
```php
|
||||
$aspect->addModifier('my_modifier', function ($variable, $param1, $param2) {
|
||||
$cytro->addModifier('my_modifier', function ($variable, $param1, $param2) {
|
||||
// ...
|
||||
});
|
||||
```
|
||||
|
@@ -11,7 +11,7 @@ Tags [RU]
|
||||
Примитивное добавление функции можно осуществить следующим образом:
|
||||
|
||||
```php
|
||||
$aspect->addFunction(string $function_name, callable $callback[, callable $parser]);
|
||||
$cytro->addFunction(string $function_name, callable $callback[, callable $parser]);
|
||||
```
|
||||
|
||||
В данном случае запускается стандартный парсер, который автоматически разберет аргументы тега, которые должны быть в формате HTML аттрибутов и отдаст их в функцию ассоциативным массивом.
|
||||
@@ -19,7 +19,7 @@ $aspect->addFunction(string $function_name, callable $callback[, callable $parse
|
||||
Существует более совершенный способ добавления функции:
|
||||
|
||||
```php
|
||||
$aspect->addFunctionSmarty(string $function_name, callable $callback);
|
||||
$cytro->addFunctionSmarty(string $function_name, callable $callback);
|
||||
```
|
||||
|
||||
В данном случае парсер просканирует список аргументов коллбека и попробует сопоставить с аргументами из тега. Таким образом вы успешно можете добавлять Ваши штатные функции.
|
||||
@@ -29,7 +29,7 @@ $aspect->addFunctionSmarty(string $function_name, callable $callback);
|
||||
Добавление блоковой функции аналогичен добавлению строковой за исключением того что есть возможность указать парсер для закрывающего тега.
|
||||
|
||||
```php
|
||||
$aspect->addBlockFunction(string $function_name, callable $callback[, callable $parser_open[, callable $parser_close]]);
|
||||
$cytro->addBlockFunction(string $function_name, callable $callback[, callable $parser_open[, callable $parser_close]]);
|
||||
```
|
||||
|
||||
Сам коллбек принимает первым аргументом контент между открывающим и закрывающим тегом, а вторым аргументом - ассоциативный массив из аргуметов тега.
|
||||
@@ -39,14 +39,14 @@ $aspect->addBlockFunction(string $function_name, callable $callback[, callable $
|
||||
Добавление строчного компилятора осуществляеться очень просто:
|
||||
|
||||
```php
|
||||
$aspect->addCompiler(string $compiler, callable $parser);
|
||||
$cytro->addCompiler(string $compiler, callable $parser);
|
||||
```
|
||||
|
||||
Парсер должен принимать `Aspect\Tokenizer $tokenizer`, `Aspect\Template $template` и возвращать PHP код.
|
||||
Компилятор так же можно импортировать из класса автоматически
|
||||
|
||||
```php
|
||||
$aspect->addCompilerSmart(string $compiler, $storage);
|
||||
$cytro->addCompilerSmart(string $compiler, $storage);
|
||||
```
|
||||
|
||||
`$storage` может быть как классом так и объектом. В данном случае шаблонизатор будет искать метод `tag{$compiler}`, который будет взят в качестве парсера тега.
|
||||
@@ -56,13 +56,13 @@ $aspect->addCompilerSmart(string $compiler, $storage);
|
||||
Добавление блочного компилятора осуществяется двум способами. Первый
|
||||
|
||||
```php
|
||||
$aspect->addBlockCompiler(string $compiler, array $parsers, array $tags);
|
||||
$cytro->addBlockCompiler(string $compiler, array $parsers, array $tags);
|
||||
```
|
||||
|
||||
где `$parser` ассоциативный массив `["open" => parser, "close" => parser]`, сождержащий парсер на открывающий и на закрывающий тег, а `$tags` содержит список внутренних тегов в формате `["tag_name"] => parser`, которые могут быть использованы только с этим компилятором.
|
||||
Второй способ добавления парсера через импортирование из класса или объекта методов:
|
||||
|
||||
```php
|
||||
$aspect->addBlockCompilerSmart(string $compiler, $storage, array $tags, array $floats);
|
||||
$cytro->addBlockCompilerSmart(string $compiler, $storage, array $tags, array $floats);
|
||||
```
|
||||
|
||||
|
@@ -84,7 +84,7 @@ See also [security options](./settings.md)
|
||||
|
||||
### Scalar values
|
||||
|
||||
Строки в Aspect обрабатываются идентично правилам подстановки переменных в строки в PHP, т.е. в двойных кавычках переменная заменяется на её значение, в одинарных замены не происходит.
|
||||
Строки в Cytro обрабатываются идентично правилам подстановки переменных в строки в PHP, т.е. в двойных кавычках переменная заменяется на её значение, в одинарных замены не происходит.
|
||||
|
||||
```smarty
|
||||
{var $foo="Username"}
|
||||
@@ -185,11 +185,11 @@ See also [security options](./settings.md)
|
||||
|
||||
### Ignoring temaplate code
|
||||
|
||||
В шаблонизаторе Aspect используются фигурные скобки для отделения HTML от кода Aspect.
|
||||
В шаблонизаторе Cytro используются фигурные скобки для отделения HTML от кода Cytro.
|
||||
Если требуется вывести текст, содержащий фигурные скобки помните о следующих возможностях:
|
||||
|
||||
1. Использование блочного тега `{ignore}{/ignore}`. Текст внутри этого тега текст не компилируется шаблонизатором и выводится как есть.
|
||||
2. Если после открывающей фигурной скобки есть пробельный символ (пробел или `\t`) или перенос строки (`\r` или `\n`), то она не воспринимается как разделитель rкода Aspect и код после неё выводится как есть.
|
||||
2. Если после открывающей фигурной скобки есть пробельный символ (пробел или `\t`) или перенос строки (`\r` или `\n`), то она не воспринимается как разделитель rкода Cytro и код после неё выводится как есть.
|
||||
|
||||
Пример:
|
||||
|
||||
|
@@ -79,7 +79,7 @@ Tag {foreach} [RU]
|
||||
{/foreach}
|
||||
```
|
||||
|
||||
В блоке `{foreachelse}...{/foreach}` использование `{break}`, `{continue}` выбросит исключение `Aspect\CompileException` при компиляции
|
||||
В блоке `{foreachelse}...{/foreach}` использование `{break}`, `{continue}` выбросит исключение `Cytro\CompileException` при компиляции
|
||||
|
||||
### Notice
|
||||
|
||||
|
Reference in New Issue
Block a user