mirror of
https://github.com/fenom-template/fenom.git
synced 2023-08-10 21:13:07 +03:00
@@ -2,7 +2,7 @@
|
|||||||
=========
|
=========
|
||||||
|
|
||||||
По синтаксису шаблона Fenom похож на [Smarty](http://www.smarty.net/), но обладает рядом улучшений.
|
По синтаксису шаблона Fenom похож на [Smarty](http://www.smarty.net/), но обладает рядом улучшений.
|
||||||
Все теги шаблонизатора заключаются в фигрные скобки: `{` — открытие тега и `}` — закрытие тега.
|
Все теги шаблонизатора заключаются в фигурные скобки: `{` — открытие тега и `}` — закрытие тега.
|
||||||
|
|
||||||
**Замечание**
|
**Замечание**
|
||||||
Хоть Fenom и позаимствовал синтаксис Smarty, но он не заимствовал теги Smarty как есть.
|
Хоть Fenom и позаимствовал синтаксис Smarty, но он не заимствовал теги Smarty как есть.
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
<div class="user">Hello, <a href="/users/17">Bzick</a>.</div>
|
<div class="user">Hello, <a href="/users/17">Bzick</a>.</div>
|
||||||
```
|
```
|
||||||
|
|
||||||
Переменные могут быть массивом. В этом случае обращение по ключу происходит через опертор `.` или, как в PHP, через операторы `[` и `]`
|
Переменные могут быть массивом. В этом случае обращение по ключу происходит через оператор `.` или, как в PHP, через операторы `[` и `]`
|
||||||
```smarty
|
```smarty
|
||||||
<div class="user">Hello, <a href="/users/{$user.id}">{$user.name}</a>.</div>
|
<div class="user">Hello, <a href="/users/{$user.id}">{$user.name}</a>.</div>
|
||||||
```
|
```
|
||||||
@@ -38,12 +38,12 @@
|
|||||||
<div class="user">Hello, <a href="/users/{$user['id']}">{$user['name']}</a>.</div>
|
<div class="user">Hello, <a href="/users/{$user['id']}">{$user['name']}</a>.</div>
|
||||||
```
|
```
|
||||||
|
|
||||||
В случае объекта, доступ к его свойствам осущесвляется так как и в PHP — через оператор `->`:
|
В случае объекта, доступ к его свойствам осуществляется так как и в PHP — через оператор `->`:
|
||||||
```smarty
|
```smarty
|
||||||
<div class="user">Hello, <a href="/users/{$user->id}">{$user->name}</a>.</div>
|
<div class="user">Hello, <a href="/users/{$user->id}">{$user->name}</a>.</div>
|
||||||
```
|
```
|
||||||
|
|
||||||
Методы, как и свойства можно вызвать через оператор `->`, передав в метод любые рагументы:
|
Методы, как и свойства можно вызвать через оператор `->`, передав в метод любые аргументы:
|
||||||
```smarty
|
```smarty
|
||||||
<div class="user">Hello, <a href="/users/{$user->getId()}">{$user->getName()}</a>.</div>
|
<div class="user">Hello, <a href="/users/{$user->getId()}">{$user->getName()}</a>.</div>
|
||||||
```
|
```
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
Что бы избежать фатальной ошибки определите метод `__call` у класса объекта.
|
Что бы избежать фатальной ошибки определите метод `__call` у класса объекта.
|
||||||
Вызов методов в шаблоне можно вообще выключить в [настройках](./docs/configuration.md).
|
Вызов методов в шаблоне можно вообще выключить в [настройках](./docs/configuration.md).
|
||||||
|
|
||||||
Ниже приведены комбинированые примеры работы с переменными:
|
Ниже приведены комбинированные примеры работы с переменными:
|
||||||
|
|
||||||
```smarty
|
```smarty
|
||||||
{$foo.bar.baz}
|
{$foo.bar.baz}
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
|
|
||||||
### Системная переменная
|
### Системная переменная
|
||||||
|
|
||||||
Безименная системная переменная начинается с `$.` и предоставляет доступ к глобальным системным переменным и системной информации:
|
Безымянная системная переменная начинается с `$.` и предоставляет доступ к глобальным системным переменным и системной информации:
|
||||||
|
|
||||||
* `$.get` — `$_GET`.
|
* `$.get` — `$_GET`.
|
||||||
* `$.post` — `$_POST`.
|
* `$.post` — `$_POST`.
|
||||||
@@ -183,7 +183,7 @@
|
|||||||
|
|
||||||
**Замечение**
|
**Замечение**
|
||||||
Двоичная запись числа (`0b1011011`) не доступна на старых версиях PHP — 5.3 или ниже.
|
Двоичная запись числа (`0b1011011`) не доступна на старых версиях PHP — 5.3 или ниже.
|
||||||
Попытка исользовать на старых версия PHP приведет к исключению при компиляциях.
|
Попытка использовать на старых версия PHP приведет к исключению при компиляциях.
|
||||||
|
|
||||||
**Замечение**
|
**Замечение**
|
||||||
Размер целого числа зависит от платформы, хотя, как правило, максимальное значение примерно равно 2 миллиардам (это 32-битное знаковое).
|
Размер целого числа зависит от платформы, хотя, как правило, максимальное значение примерно равно 2 миллиардам (это 32-битное знаковое).
|
||||||
@@ -213,8 +213,8 @@
|
|||||||
|
|
||||||
Специальное значение NULL представляет собой переменную без значения. NULL - это единственно возможное значение типа null.
|
Специальное значение NULL представляет собой переменную без значения. NULL - это единственно возможное значение типа null.
|
||||||
|
|
||||||
Обычно возникают путаницы между NULL и FALSE, так как по роли они похожи, но разлицаются по принципу:
|
Обычно возникают путаницы между NULL и FALSE, так как по роли они похожи, но различаются по принципу:
|
||||||
NULL - это отсутствие присутствия, а FALSE - присутвие отсутствия.
|
NULL - это отсутствие присутствия, а FALSE - присутствие отсутствия.
|
||||||
|
|
||||||
### Операции
|
### Операции
|
||||||
|
|
||||||
@@ -264,7 +264,7 @@ NULL - это отсутствие присутствия, а FALSE - прису
|
|||||||
* Числа с плавающей точкой также будут преобразованы к числу, т.е. дробная часть будет отброшена. Например, ключ со значением `8.7` будет в действительности сохранен со значением `8`.
|
* Числа с плавающей точкой также будут преобразованы к числу, т.е. дробная часть будет отброшена. Например, ключ со значением `8.7` будет в действительности сохранен со значением `8`.
|
||||||
* Булев также преобразовываются к целому числу. Например, ключ со значением `true` будет сохранен со значением `1` и ключ со значением `false` будет сохранен со значением `0`.
|
* Булев также преобразовываются к целому числу. Например, ключ со значением `true` будет сохранен со значением `1` и ключ со значением `false` будет сохранен со значением `0`.
|
||||||
* NULL будет преобразован к пустой строке. Например, ключ со значением `null` будет в действительности сохранен со значением `""`.
|
* NULL будет преобразован к пустой строке. Например, ключ со значением `null` будет в действительности сохранен со значением `""`.
|
||||||
* Массивы (тип array) и объекты (тип object) не могут использоваться в качестве ключей. При подобном использовании будет генерироваться предупреждение: Недопустимый тип смещения (Illegal offset type).
|
* Массивы (тип array) и объекты (тип object) не могут использоваться в качестве ключей. При подобном использовании компилятор будет генерировать предупреждение: Недопустимый тип смещения (Illegal offset type).
|
||||||
|
|
||||||
Если несколько элементов в объявлении массива используют одинаковый ключ, то только последний будет использоваться, а все другие будут перезаписаны.
|
Если несколько элементов в объявлении массива используют одинаковый ключ, то только последний будет использоваться, а все другие будут перезаписаны.
|
||||||
|
|
||||||
@@ -285,7 +285,7 @@ NULL - это отсутствие присутствия, а FALSE - прису
|
|||||||
|
|
||||||
## Модификаторы
|
## Модификаторы
|
||||||
|
|
||||||
Модификаторы переменных могут быть прмменены к переменным, пользовательским функциям или строкам.
|
Модификаторы переменных могут быть применены к переменным, пользовательским функциям или строкам.
|
||||||
Для их применения надо после модифицируемого значения указать символ `|` (вертикальная черта) и название модификатора.
|
Для их применения надо после модифицируемого значения указать символ `|` (вертикальная черта) и название модификатора.
|
||||||
Так же модификаторы могут принимать параметры, которые влияют на их поведение.
|
Так же модификаторы могут принимать параметры, которые влияют на их поведение.
|
||||||
Эти параметры следуют за названием модификатора и разделяются `:` (двоеточием).
|
Эти параметры следуют за названием модификатора и разделяются `:` (двоеточием).
|
||||||
@@ -304,14 +304,14 @@ NULL - это отсутствие присутствия, а FALSE - прису
|
|||||||
|
|
||||||
## Теги
|
## Теги
|
||||||
|
|
||||||
Все сущности шаблона можно разжелить на две группы:
|
Все сущности шаблона можно разбить на две группы:
|
||||||
|
|
||||||
* заполнитель (placeholder) — вывод переменной в шаблоне, например `{$name}`
|
* заполнитель (placeholder) — вывод переменной в шаблоне, например `{$name}`
|
||||||
* тег — конструкция выполняющаяя некоторые действия, выглядит как именованный заполнитель (placeholder), например `{include $name}`
|
* тег — конструкция выполняющая некоторые действия, выглядит как именованный заполнитель (placeholder), например `{include $name}`
|
||||||
|
|
||||||
Теги так же можно разделить на две группы:
|
Теги так же можно разделить на две группы:
|
||||||
|
|
||||||
* Функии. Тег функции вызывает пользовательскую во время выполнения шаблона, результат функции будет выведен вместо тега.
|
* Функии. Тег функции вызывает пользовательскую функцию во время выполнения шаблона, результат функции будет выведен вместо тега.
|
||||||
Пользовательские функции являются дополнительными и могут быть индивидуальными. Они могут быть изменены по вашему желанию, также вы можете создать новые.
|
Пользовательские функции являются дополнительными и могут быть индивидуальными. Они могут быть изменены по вашему желанию, также вы можете создать новые.
|
||||||
* Компиляторы. В отличии от функций компиляторы вызываются во время компиляции шаблона и возвращают PHP код, который описывает некоторое действие.
|
* Компиляторы. В отличии от функций компиляторы вызываются во время компиляции шаблона и возвращают PHP код, который описывает некоторое действие.
|
||||||
Компиляторы и формируют основные конструкции типа `if`, `foreach` и т.д.
|
Компиляторы и формируют основные конструкции типа `if`, `foreach` и т.д.
|
||||||
|
Reference in New Issue
Block a user