2. Основные особенности и возможности
01.11.2015
Требования: PHP 5.3 или выше.
Возможности:
- уникальный дружественный административный интерфейс;
- полностью открытый исходный код;
- ЧПУ (является неотъемлемой частью, отключить нельзя);
- полноценный фреймворк, имеющий MVC-архитектуру (имеет много особенностей);
- прозрачная поддержка СУБД MySQL и SQLite (других нет и не будет);
- поддержка мультиязычности;
- уникальная система подмены пользователей (администратор может на время в глазах системы становиться любым другим пользователем - на практике это часто облегчает написание админки);
- широкая возможность модификации URL страниц (любой странице можно задать индивидуальный URL-адрес);
- метатеги для всех значимых для поисковых систем страниц сайта (например страница авторизации и восстановления пароля не являются значимыми);
- прозрачная поддержка LastModified;
- Поддержка XML-карты сайта, возможность настройки для дополнительных модулей;
- поддержка хуков (реакция системы на те или иные события, например, поиск по сайту);
- автоматизация большинства рутинных операций (в основном касается административного интерфейса);
- поддержка групп пользователей, разделение прав администраторов;
- кешированние, в том числе кеширование произвольных данных;
- отдельный шаблон для pda-версии;
- возможность использовать индивидуальные шаблоны для разных страниц сайта;
- модульность, расширяемость (используется главным образом для удаления неиспользуемых модулей);
- поддержка секций и виджетов (некоторый аналог модулей в joomla), тонкая настройка страниц, на которых должен быть опубликован виджет;
- прозрачное кеширование виджетов;
Внимание! Во многих аспектах различные переменные, напрямую влияющие на поведение движка, доступны для изменения. Это даёт программисту большую свободу действий. Например в начальных стадиях обработки запроса можно изменить переменную $_GET['corePath'] — она отвечает за то, какая страница будет отображена и какие виджеты будут опубликованы на странице.
Однако зачастую нужно быть предельно внимательным, например такой код:
$u=core::user();
$u->group=255;
наделит текущего пользователя правами суперпользователя на протяжении всего времени пребывания на сайте (core::user() возвращает ссылку на объект, находящийся в сессии).