Content Management Framework. Easy. Convenient. Free.
Навигация
Новости
Новая версия PHPC!
Очередной стабильный релиз с новыми возможностями.
12 декабря 2010 | Подробнее...
Документация!
Солидное пополнение.
28 октября 2010 | Подробнее...
Обновление документации
Онлайн-руководство начинает потихонечку обновляться.
15 октября 2010 | Подробнее...
Новая версия PHPC!
Вышла новая версия, 2.5.1, с набором полезных изменений.
12 октября 2010 | Подробнее...
DLTFM!
Отныне документация доступна и в формате для скачивания.
30 января 2010 | Подробнее...
Новая документация
Первые разделы Руководства уже на сайте.
20 января 2010 | Подробнее...
Онлайн-поддержка
Теперь вы можете задать свои вопросы через ICQ.
11 января 2010 | Подробнее...

Архитектура PHPC

Назад: Теория PHPCК началу: ДокументацияДалее: Схема работы PHPC

Понять архитектуру PHPC будет несложно хотя бы уже потому, что этот движок очень компактен − в нем меньше 40 файлов. Здесь нет ни сложной иерархии классов, которую нужно зазубривать наизусть, ни разветвленной структуры каталогов, в которой можно заблудиться. Все просто и интуитивно понятно.

Главная идея PHPC

Главную идею PHP Compiler можно выразить так:

"Хороший сайт похож на быструю реку, которая находится в непрерывном движении."

Что это значит?

Это значит, что живой, интересный, качественный веб-проект никогда не замирает в одном состоянии. Сайт постоянно растет, наполняется новыми материалами, его структура постоянно претерпевает изменения − адаптируется и улучшается старое, добавляется новое. Нельзя раз и навсегда продумать и предугадать структуру и содержание вашего будущего сайта. Поэтому хороший движок должен предоставлять удобные инструменты для управления не только содержимым, но и структурой сайта.

Главные носители структуры сайта − это его страницы. Следовательно, хороший движок должен позволять легко и свободно управлять даже такой основополагающей вещью, как страницы вашего сайта. Большинство современных фреймворков не в состоянии обеспечить вам достаточную свободу в управлении страницами, ибо заставляют вас жестко "зашивать" структуру проекта в виде файлов и классов и сохранять их на сервере в таком виде.

PHP Compiler устроен иначе. Он не хранит страницы вашего сайта в виде файлов. Ни в явной форме, когда ссылка ведет прямо на "страничный" файл, ни в неявной, когда для каждой страницы пишется отдельный класс-контроллер, а их подключением и запуском заведует класс-диспетчер. Все это слишком громоздко. Вместо этого PHPC хранит страницы вашего сайта как данные, в таблице. Что это дает:

  • Это до предела упрощает пополнение сайта новыми разделами и страницами.
  • Это позволяет удобно управлять структурой вашего сайта прямо из админпанели.
  • Это позволяет в любой момент окинуть взглядом всю структуру вашего сайта.
  • Это позволяет избежать превращения программного кода вашего сайта в файлопомойку.
  • Это позволяет делать более полноценные резервные копии вашего сайта.
  • Это, как ни странно, ускоряет работу вашего сайта. Выборка данных о странице из таблицы в среднем работает даже быстрее, чем обработка многочисленных роутинг-правил и фильтров с последующим поиском, подключением и запуском скрипта с нужным классом.

Итог: структура сайта, то есть набор его страниц и разделов, является динамической, а не статической сущностью. По сути, страницы сайта − это такие же данные, как новости или комментарии. Следовательно, и хранить их надо, как полноценные данные − в базе данных.

Теперь, когда вы поняли концепцию PHPC, вам не составит труда разобраться и с его основными сущностями.

Основные сущности PHPC

Поведение любого сайта на PHPC управляется тремя центральными понятиями, или сущностями:

  • Страницы (таблица pages);
  • Шаблоны (таблица templates);
  • Пакеты (таблица bundles).

Каждая сущность хранится в своей таблице, для управления каждой сущностью предусмотрена отдельная закладка в панели управления. Рассмотрим их по отдельности.

Страницы

Эта сущность отвечает за обработку запросов и отображение страниц вашего сайта. Каждой PHPC-странице, или, другими словами, каждой записи в таблице pages, соответствует либо одна страница вашего сайта, либо целое семейство однотипных страниц.

Важно понимать, что сами по себе PHPC-страницы ничего не отображают на экране. Отображением дизайна и контента занимаются шаблоны, о них чуть позже. PHPC-страница − это лишь набор характеристик, которые подсказывают движку, является ли тот или иной запрос к сайту валидным и как следует реагировать на этот запрос: какие данные выбирать из базы, какой шаблон использовать для их отображения.

PHPC-страницы могут наследоваться друг от друга. Если в свойствах PHPC-страницы указать страницу-предка, то новая PHPC-страница унаследует у страницы-предка все пропущенные атрибуты, а также список дополнительных параметров. Если на вашем сайте есть набор страниц, которые очень похожи друг на друга, и различаются лишь парой нюансов − наследуйте такие страницы от общего предка, и указывайте все однотипные параметры только у предка. Это упростит внесение изменений во все такие страницы в дальнейшем − достаточно будет отредактировать страницу-предка.

При установке движка с нуля, автоматически создаются две PHPC-страницы: index и 404. Первая нужна для отображения главной страницы вашего сайта. Вторая − для обработки ситуации "страница не найдена". Разумеется, вы можете свободно добавлять на сайт новые страницы, например, about/authors или contacts. Новые страницы начнут работать сразу после того, как вы щелкните по кнопке сохранения данных в панели управления.

Шаблоны

Шаблоны нужны сайту для двух вещей: для отделения логики от представления и для придания вашему проекту красивого и оригинального внешнего вида. Современные сайты сложны не только в своем внутреннем устройстве, но и в своем оформлении − на одном сайте может быть и фотогалерея, и блог, и библиотека, и форум для общения, и все это нужно стильно оформлять. Поэтому шаблонизатор − очень важная часть современных сайтовых движков.

В PHP Compiler шаблоны, как и страницы, хранятся в базе данных. Каждому шаблону соответствует одна запись в таблице templates. Важно понимать, что PHPC оснащен компилирующим шаблонизатором − неважно, как сильно вы структурируете свои шаблоны и как много вспомогательных шаблонов вы используете для оформления сайта. Перед выполнением все необходимые шаблоны все равно будут собраны в одну мощную, но компактную структуру и закешированы для повторного использования. Поэтому, в отличие от других шаблонизаторов, увеличение количества и сложности шаблонов в PHPC никак не сказывается на производительности сайта.

Как и PHPC-страницы, шаблоны в PHP Compiler могут наследоваться друг от друга. Но у шаблонов этот механизм работает чуть иначе. Он предназначен для заимствования у предков не параметров, а частей содержимого. Подробнее об этом можно прочитать в статье: Наследование шаблонов.

Чтобы связать шаблон с PHPC-страницей, нужно указать название шаблона в параметрах страницы. Один и тот же шаблон может использоваться для отображения нескольких разных страниц.

Пакеты

Перед тем, как выводить в шаблонах динамические данные − например, список последних новостей − эти данные нужно предварительно сформировать. В простейшем случае их нужно выбрать из базы данных. Для хранения кода, отвечающего за подготовку данных, в PHPC предназначены пакеты.

Как и шаблоны, пакеты хранятся в базе данных и ими можно управлять в панели управления, без необходимости что-либо скачивать или закачивать через медленный протокол FTP. Пакет − это просто фрагмент программного кода на языке PHP, ничем не отличающийся от обычного, за исключением того, что в нем нет тегов <?php ... ?>. В пакетах автоматически доступны все наиболее важные переменные и классы движка. Кроме того, все созданные в пакете переменные автоматически захватываются и передаются в шаблон. Таким образом, для того, чтобы вывести на странице ленту новостей, необходимо создать пакет, состоящий из одной-единственной строки:

$news=$database->getOrderedLines("news","date DESC");

Чтобы связать вместе пакет и шаблон, нужно указать название пакета в параметрах той же самой PHPC-страницы, с которой связан нужный вам шаблон.

Кроме обычного способа (страница запускает сначала пакет, а затем шаблон), возможны и более экзотические варианты. Например, пакет может самостоятельно запускать шаблон, при помощи метода processTemplate класса Compiler. Также допускается использование PHP-вставок в шаблонах.


Кроме этой троицы (Страницы, Шаблоны и Пакеты), в PHPC используются и другие сущности − Представления ссылок, Подстановки, Стили и так далее. Их детальное изучение можно отложить на потом. Главное на данный момент − разобраться с тем, как страницы, шаблоны и пакеты взаимодействуют друг с другом, что в них можно делать, а что нельзя. Не бойтесь экспериментировать, смело "играйте" с панелью управления. Можете воспользоваться руководством по созданию первого сайта, чтобы пройти весь путь по шагам. Ну а если вы вдруг сделаете что-нибудь не так − просто удалите все таблицы из базы данных вашего пробного сайта. После этого вы сможете установить их повторно в панели управления и начать все с чистого листа.

Назад: Теория PHPCК началу: ДокументацияДалее: Схема работы PHPC
Документация
Лучшие сайты на PHPC
Наши друзья
Другие интересные CMF
Помогите проекту!
WMZ: Z829076217306
WMR: R735042680488
Онлайн-поддержка
Техподдержка сайтов,
Разработка модулей
ICQ: 564226396