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 должна лежать выше нежели 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 – для полного раскрытия темы гридов