Для разработчика

Для разработчика

Изнанка

25 февраля 2016

Изнанка — движок для сайтов. Это не ЦМС. Изнанка не умеет практи­чески ничего и при этом умеет практи­чески все. Это настро­енная среда с разде­лением шабло­нов и логики.

Версия 2.3 Увеличина производительность, добавились цикл foreach и функция throw404, убраны старые баги, функция $view->compile стала публичной.
Заметка о релизе

ЗИП ↓

Установка

Изнанке нужен Апач с включен­ным модулем mod_rewrite и ПХП старше 5.4, желатель­но ПХП7.

Уста­новка Изнанки выгля­дит так же, как и уста­новка любого другого движка на ПХП: распа­куйте движок в отдель­ную папку на серве­ре и открой­те в браузе­ре. Если все удалось, вы увидите такую страницу:

Логика

Файлы с програм­мной логикой лежат в папках ./system/includes/ и ./system/modules/. Файлы из первой папки импортируются автоматически. Для вызова файлов из второй есть функция:

runModule($module, $view, $db)

Для взаимодействия с шаблонами есть объект $view. Этот объект имеет метод задающий переменные шаблона:

View::set('foo', 'value')

Также в этом объекте есть две предустановленные перменные:

  • $view->uri — относительный адрес страницы, на этой странице равна /tools/iznanka/
  • path — массив пути, на этой странице массив будет таким: path[0] = 'tools', path[1] = 'iznanka'.

Настройки базы MySQL задаются в файле ./system/config.php. По умолчанию объект базы не создан, чтобы создать его надо выполнить команду connectdb(), которая создаст глобальный объект $db.

Роутинг задаётся в файле ./system/includes/router.php.

Шаблоны

Шабло­ны пишут­ся на ХТМЛ с вкрапле­ниями кода шабло­низатора. Участки, где исполь­зует­ся шабло­низатор обрамля­ются {{двойны­ми фигур­ными скобка­ми}}.

Внутрь одного шаблона можно инклюдить другой.

{{include file='main.tpl'}}

Для обращения к переменным из шаблона используется собака «@».

{{@content}}

Если надо вывес­ти сгенерированные данные, то пишется знак решет­ки (#) перед @.

{{#strtolower(@title)}}

Условные операторы пишутся с ПХП–подобном синтаксисом.

{{if (!@admin)}}
Не авторизован
{{else}}
Авторизован как администратор
{{end}}

Циклы тоже пишутся с ПХП–подобном синтаксисом.

{{for ($i=0 to 10)}}
<ul>
<li>Этот пункт будет выведен 10 раз</li>
</ul>
{{end}}

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

<link rel="stylesheet" href="{{anticache file='/css/style.css'}}">