ZFCore — CMF на Zend Frameworkе


    Представляю на суд общественности наработку моего отдела — 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 — http://code.google.com/p/zfcore/downloads/list, или таки взять «свежак» с SVN репозитория:

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


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

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


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


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

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 42

      0
      Круто. Будем пробовать.
        +10
        >советую так же покопаться Magento eCommerce
        Внимание, копание magento может отнять у вас пару месяцев жизни ;)
          +1
          Я думаю, эта пара месяцев того стоит.
            +1
            Главное чтобы клиенты тянули vps или выделенные сервера за 40$, все таки он очень требовательна к ресурсам
          +9
          переделка формы регистрации не будет занимать больше одного дня (экономия времени 16-24 чч)


          omg. Да за сутки можно написать с нуляя форму регистрации со всеми примочками, нужными и не очень плюшками и сдобрить парой свистелок и перделок. А еще останется время чтоб прикрутить альтернативные методы авторизации и разработать собственный алгоритм хеширования паролей :)
            0
            Речь не о сутках а о 8 человекочасах
              0
              так это 16-24 человекачаса? То есть 3 рабочих дня?
              Тогда вообще непонятно, как можно 3 рабочих дня заниматься «переделкой формы регистрации „
                +1
                вы, наверное, не досмотрели: там сказано, что переделка не займет более 8 человеко/часов, а 16-24 — это экономия на всей «пользовательской» части (регистрация/авторизация/активация)
            +6
            Я все еще считаю, что в ZFCore — Dojo лишний.
              0
              Вообще ИМХО правильный путь — выкидывать к чертям все JS-либы из CMS и прикручивать адаптеры к наиболее популярным существующим либам + добавлять мануал по рихтовке собственного адаптера к любой другой непопулярной JS-либе.
              +2
              Я думаю, главный вопрос — на какой версии фреймворка работает?
                +1
                  +1
                  то есть гарантируете работу на альфе последней версии?) Хорошо пишите!)
                    +1
                    Это Zend хорошо пишет…
                      –1
                      Мммм… я еще сам не пробовал ветвь 1.10, но читал, что там немаленькие такие изменения есть в основах фреймворка, в Zend_Controller, Zend_View и прочее + ввели полную поддержку PHP 5.3. Поэтому сам еще не переводил свои проекты на эту ветвь и поэтому интересовался версией для вашей CMF.
                        +1
                        Вы случаем не про 2.0 говорите? )
                          0
                          ой веей, я всё перепутал) Почему-то был уверен до сего момента, что 1.10 требует PHP 5.3, а оно вот как оказалось, это zg 2.0 будет требовать…

                          Завтра потестю новый для меня релиз))
                    0
                    Настоятельно не рекомендую ссылаться на trunk. Там не всегда стабильный код. Я даже был личным свидетелем как один из контрибуторов с правом записи, комитил туда код с ошибками, не критичными конечно, но все же.

                    Лучше ссылаться на одну из branches
                  0
                  Интерфейс админ-панели слабоват, как по мне у Magento все более продумано
                    0
                    Я правильно уловил суть — это попытка сделать Symfony из ZF? :)
                      +1
                      Теперь ждем Symfony2, который построен на отдельных независимых компонентах, как ZF.
                      Движение навстречу получается.
                        0
                        ZF — на независимых?
                        Тогда проверочный вопрос — как использовать, например, Zend_OpenId_Consumer, не реализуя Zend_Response_Abstract (или как его там)?
                          0
                          Впрочем, других вариантов я тоже не могу придумать.
                        0
                        Скорее sympal или Diem. Правда, без Doctrine. Думаю, разработчики об этом ещё пожалеют.
                        +5
                        Статья хорошая, много хороших ссылок, что не можно сказать про код. Для начала неплохо бы убрать закомментированные куски кода и и написать документацию к методам.
                        За тесты огромный плюс в карму, а за код @unlink($path. $name) минус, ошибки нужно обрабатывать всегда!
                        Для начинающих самое то, а у профессионалов свои наработки :)
                          –2
                          За всем и не уследишь…
                          0
                          Спасибо, очень кстати, как раз искал нечто подобное. Дизайн в демке напомнил zendesk.com
                          Если кому интересно, вот еще небольшой список opensource CMS на базе Zend:
                          — veneercms
                          — eqol
                          — Zundoo CMS
                          — zfcms
                          — Zupal
                          — Blt-3
                          — ZFWeb20
                          — HappyCMS
                          — Soft-bureau CMS
                          — Surforce CMS
                            –8
                            Слушайте, Zend же тормозит и громоздкий (и имхо уродливый), не? (а еще он у меня на Windows почему-то не работает вместе с APC но эт видимо проблемы APC уже). Зачем забивать гвозди строительным краном? И еще он XSLT использует, фу.
                              –1
                              разберитесь в теме как следует и не надо громких криков, они не придают вам делового вида
                                +3
                                фууу, не позорь клуб троллей, толстяк…
                                –5
                                Все таки открыл как и обещал =) Респект, Антон, и уважуха Вам и вашей компании!
                                  0
                                  Вы наверное в честь этого на своем блоге полностью скопипастили его статью?
                                    0
                                    Кстати да, кто вам разрешает копировать статьи, более того вы даже настоящего автора не всегда указываете! Низачот
                                    0
                                    Можете запинать, но как-то не получается залогиниться в демке… :(
                                      0
                                      тоже не получилось, admin / 123456 не пускает
                                        0
                                        Кто-то решил пароль поменять…
                                        0
                                        Magento eCommerce — разработка отечественного производителя?
                                        0
                                        Посмотрел Ваши исходники — полезная штука.
                                        Только, я бы не делал конфиг-файлы на XML — на то чтобы их парсить каждый раз нужны дополнительные затраты. Самый экономный вариант, имхо, это конфиги на php.
                                        Скачал версию из SVN — так она мне при логине обычного посетителем выдает такой вот глючек:
                                        Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4056 bytes) in Z:\zend\library\Zend\Config\Xml.php on line 256
                                        Да и вообще подтормаживает довольно таки хорошо.
                                        У меня стоит локально на своем движке многоязычный сайт с довольно сложной логикой
                                        — так он мгновенно грузится, а вот zfcore с десяток секунд перегружается.

                                          0
                                          16M оперативки явно мало, чтож Вы хотели?!
                                          0
                                          Работы над цмф прекратились?

                                          Only users with full accounts can post comments. Log in, please.