Антон Шевчук // Web-разработчик

ZFCore – CMF на Zend Frameworkе // PHP


Представляю на суд общественности наработку моего отдела – CMF система на базе Zend Framework’а…

Преследуемые цели

Основная задача, решаемая данным проектом – ускорение разработки приложений для экономии времени, и повышения конкурентоспособности на фоне аналогичных предложений по разработке кастомных web-приложений.

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

Фичи проекта

Что же включает данный полуфабрикат:

Система:

  • максимальное количество опций вынесено в application.ini
  • настраиваемый через конфигурационный файл ACL (глобальный и для каждого модуля)
  • настраиваемая через конфигурационный файл навигация (глобальный и для каждого модуля)
  • настраиваемые через конфигурационный файл роуты (глобальный и для каждого модуля)

Пользовательская часть:

  • пользователи – регистрация/авторизация/активация – переделка формы регистрации не будет занимать больше одного дня (экономия времени 16-24 чч)
  • статические страницы – останется лишь слегка изменить внешний дизайн (~4-8 чч)
  • навигация, карта сайта и sitemap.xml (~4-8 чч)

Администрирование:

  • приемлемый дизайн в едином стиле (~4-8 чч)
  • управление пользователями (~12-16 чч)
  • управление статическими страницами (включая аплоад картинок) (~12-16 чч)
  • управление почтовыми уведомлениями (~12-16 чч)

В процессе разработки

  • Модуль Feedback (ContactUs если так больше будет понятно) (~12-16 чч)
  • Модуль блог/форум – отличаются они лишь представлением (~24-32 чч)

Данный функционал присутствует практически в каждом проекте, как результат – экономия времени разработки составит около 96 часов (плюс тестирование и менеджмент).

Примочки

  • Практически всё можно настроить/подключить из application.ini
  • Модули пишутся как можно более независимыми
  • Миграции БД
  • Action_Scaffold – не кодогенератор, но тоже удобно
  • Админка построена с использованием DojoToolkit и Zend_Dojo_Form
  • Стараемся покрывать код тестами

Связка Action_Scaffold + Zend_Dojo_Form дает вполне юзабельную админку:

Насчет покрытия кода – думаю, статистика покрытия будет более наглядной…

Покрытие application

Покрытие library

Заморочки

  • Миграции пока захардкождены под мускуль, адаптеры в пути
  • Модели еще не разнесены по модулям
  • Директория application должна лежать выше нежели document_root сервера, а public и должен быть этим самым рутом
  • Инсталляции нет как таковой
  • Dojo build скрипт еще не написан, так что пока используем как есть

Попробовать на зуб

На демо можно взглянуть на нашем тестовом сервере: http://zfcore.head.php.nixsolutions.com/.

Скачать можно единым архивом с code-google – https://code.google.com/archive/p/zfcore/downloads, или таки взять “свежак” с SVN репозитория:

svn checkout http://zfcore.googlecode.com/svn/trunk/ zfcore-read-only

Пожелания и замечания принимаются в багтрекере.

Другие Open Source проекты

Для любознательных, советую так же покопаться в коде следующих систем:

  • Magento eCommerce – мощнейший электронный магазин, разработка отечественного производителя
  • Digitalus CMS – неплохо выглядет снаружи
  • Digitalus Framework Core – тоже фреймворк, без особой активности (репозиторий)
  • CAHAYA CMS – слишком много “Not yet implemented”
  • Open source job board – доска объявлений о работе
  • >MYAK-CMS – еще один проект от соотечественника
  • CultSoft Engine – еще одна CMS и тоже наши

Думаю стоит так же упомянуть различные кодо-генераторы для проектов на базе Zend Framework’а (scaffold):

  • easyphpapp – строим CRUD (Create Read Update Delete) для Zend Framework
  • Zenerator – генератор классов для работы с БД
  • GEckoToolbox – формы и грид
  • Zend Framework data grid – датагрид для Zend_DB_TAble
  • ZFDatagrid – для полного раскрытия темы гридов

© Антон Шевчук 2007-2023