This commit is contained in:
bzick
2014-11-05 16:07:50 +03:00
parent 1c439fedb7
commit 7e8598ae3b
6 changed files with 43 additions and 30 deletions

View File

@@ -115,15 +115,17 @@ $fenom->addModifier('my_modifier', function ($variable, $param1, $param2) {
# Расширение тестовго оператора
```php
$fenom->addTest($name, $code);
?>
$fenom->addTest(string $name, string $code);
```
`$code` - PHP код для условия, с маркером для замены на значение или переменную.
Например, тест на целое число `is int` можно добавить как `$fenom->addTest('int', 'is_int(%s)')`.
В шаблоне тесты выглядит как `{$a is int}`, а после компиляции выглядит приблизительно так - `is_int($a)`.
# Расширение глобальной переменной или функции
Fenom обладает определенным набором глобальных переменных и функций. Однако их может не хватать для удобной работы с шаблонами.
В этом случае потребуется добавить, переопределить или удалить существующие глобальные переменные или функции.
Метод `Fenom::addAccessor($name, $parser)` позволяет добавить свой обработчик на не известную глобальную переменную или функцию.
Метод `Fenom::addAccessor(string $name, callable $parser)` позволяет добавить свой обработчик на не известную глобальную переменную или функцию.
```php
$fenom->addAccessor('project', function (Fenom\Tokenizer $tokens) { /* code */ });