Framework foton
Инструмент для профессиональной разработки web приложений

Шаблонизатор Foton предназначен для упрощения чтения и редактирования кода представлений.
При использовании шаблонизатора код вида

<?foreach($arr as $value){
    if(isset($value['name']){?>
        <a href=<?=$value['href'];?> id=”id<?=$value['id'];?>>
            <?=$value['name'];?>
        </a>
    <?}
}?>

Приобретет вид

{{news_1head}}
    <a href='{{news_2href}}' id=”id{{news_3id}}”>
        {{news_4name}}
    </a>
{{news_5end}}

Код намного короче, и проще читается.
Это лишь пример, название news или 2href и т. д. Вы можете называть как угодно. В этом состоит главное отличие от шаблонизаторов типа smarty, также шаблоны не работают через интерпретатор, а хранятся в директории sstem/api/php/site или admin.
Для создания метода   шаблона можно воспользоваться модулем php шаблоны, либо создать директорию с уникальным названием внутри api/php/$FS->sitedir, внутри этой директории создаются файлы расширением php c любым php кодом, для интерпретации этого кода достаточно вызвать {{названиедиректории_названиефайла}}
Название директории и файла не должно содержать знака «_».
С версии 8.5.0 появились новые синтаксические конструкции:
@if{...} == <?if(...){?>
@if[...] == <?if(...){?>
@else@ == <?}else{?>
@elsif{...} == <?}else if(...){?>
@elsif[...] == <?}else if(...){?>

@for{...} == <?for(...){?>
@for:{...} == <?foreach(...){?>
@arr{...} == <?print_r(...);?>
@csrf{} или @csrf{'вашметод'} - <input type="hidden" name="csrf" class="csrf" value="результат csrf метода">
@:@ == <?}?>
@::@ == <?}}?>
@:::@ == <?}}}?>
@{a} == <?=$a;?>
@[a] == <?=$a;?>
@tpl(...) == include указанного шаблона без _view из /system/api/tpl/
@tpl(... , ...) == include указанного шаблона без _view из /system/api/tpl/ 
(1 аргумент директория сайта в /system/api/tpl/ , второй название шаблона)
@rc(...) == require_once исполняемого php представления приложения из /app/view/[sitedir]/, в названии указывается полное название файла без .php
@inc(...) == include исполняемого php представления приложения из /app/view/[sitedir]/, в названии указывается название файла без _view.php
@inc(... , …) == include исполняемого php представления приложения из /app/view/[sitedir]/, в названии указывается название файла без _view.php
(1 аргумент директория сайта в /app/view/, второй название файла)
внутри {} не должно быть фигурных скобок. Как и внутри [] недолжно быть квадратных скобок, именно по этой причине 2 формы записи.
Внутри inc(),rc(),tpl() не должно быть кавычек, названия файлов должны писаться так @inc(site,html).
#{ echo ‘test’;}# - обработает php код <? echo ‘test’;?>

Вы можете выключить автоформирование шаблонов и тогда обновление будет происходить только при вызове из админ панели или консоли запрос для сохранения данных через интерпретатор, таким образом реальная страница будет выглядить также как в первом варианте, но грузится будет быстрее чем при использовании интерпретатора.

© Copyright 2026 Разработано на Framework Foton
Продукт зарегистрирован в Роспатенте