Изнанка — движок для сайтов. Это не ЦМС. Изнанка не умеет практически ничего и при этом умеет практически все. Это настроенная среда с разделением шаблонов и логики.
Изнанке нужен Апач с включенным модулем mod_rewrite и ПХП7. Может быть заведётся на более старом ПХП, но стабильность гарантировать не могу.
Установка Изнанки выглядит так же, как и установка любого другого движка на ПХП: распакуйте движок в отдельную папку на сервере и откройте в браузере.
Файлы с программной логикой лежат в папках ./system/includes/ и ./system/modules/. Файлы из первой папки импортируются автоматически. Для вызова файлов из второй есть функция:
runModule($module)
Для взаимодействия с шаблонами есть класс View. Этот класс имеет метод задающий переменные шаблона:
View::set('foo', 'value')
Настройки базы MySQL задаются в файле config.php. По умолчанию объект базы не создан, чтобы создать его надо выполнить команду connect(), которая создаст объект $db.
Роутинг задаётся командой:
addRoute('/url/', function(){
...
})
Путь пишется на упрощённых регулярных выражениях (от регулярок осталась звёздочка)
addRoute('/tools/*', function(){
runModule('tools');
})
Можно сразу добавлять несколько маршрутов:
addRoutes(
array('/tools/*', function(){
runModule('tools');
}),
array('/projects/*', function(){
runModule('projects');
})
)
Шаблоны пишутся на ХТМЛ с вкраплениями кода шаблонизатора. Участки, где используется шаблонизатор обрамляются {{двойными фигурными скобками}}.
Шаблоны кэшируются из коробки, кэширование настраивается и отключается в config.php.
Внутрь одного шаблона можно инклюдить другой.
{{include ('main.tpl')}}
Для обращения к переменным из шаблона используется собака «@».
{{@content}}
Если надо вывести сгенерированные данные, то пишется знак решетки (#) перед @.
{{#strtolower(@title)}}
Условные операторы пишутся с ПХП–подобном синтаксисом.
{{if (!@admin)}}
Не авторизован
{{else}}
Авторизован как администратор
{{end}}
Циклы тоже пишутся с ПХП–подобном синтаксисом.
{{for ($i=0 to 10)}}
<ul>
<li>Этот пункт будет выведен 10 раз</li>
</ul>
{{end}}
Есть цикл foreach
{{@list as $listItem}}
<ul>
<li>{{$listItem}}</li>
</ul>
{{end}}
В Изнанке есть антикэш, его стоит использовать для подключения стилей и скриптов. Он добавляет к имени файла таймстемп, поэтому браузер всегда будет загружать актуальную версию файлов вне зависимости от настроек кеширования.
<link rel="stylesheet" href="{{anticache ('/css/style.css')}}">