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

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

Изнанка

25 февраля 2016

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

Версия 3.0 Новый движок шаблонизатора, кэширование и очередной прирост производительности, главная страница больше не косит под Инитум

ЗИП ↓ или возьмите с гитхаба

Установка

Изнанке нужен Апач с включен­ным модулем 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')}}">

Лицензия

Изнанка распространяется по лицензии MIT.