Skip to content
This repository was archived by the owner on Jul 28, 2021. It is now read-only.

mishamyrt/iznanka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Установка

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