Решил сделать все "правильно". Пишу, чтобы запомнились шаги - что-то типа self-manual...
Итак, упрощенная задача: приложение с двумя модулями - дефолтным и админским.
Естественно, сперва скачал последний фреймвёрк.
Затем создал системную переменную zf
и в нее поместил путь к zf.bat
(Zend Framework/bin/zf.bat
).
Потом из командной строки командой zf create project
создал проект. При этом вызывал из папки, в которой следовало создать проект, но почему-то тул попросил указать путь к проекту.
Не забыл скопировать библиотеку в мой_проект/library
.
Дальше пошел гуглить :) Т. к. интересовало, как люди создают модульные проекты. В принципе, некий опыт был, но он, на мой взгляд, был каким-то... не совсем правильным.
Нашел статью некого Ероена Кеппенса, который очень мне помогает (начальное написание проекта все еще в процессе) - вот она.
До момента написания LayoutHelper
сделал, в общем-то, всё, как и у него:
- zf create module admin
;
- добавил в application.ini
строкиresources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[]
За исключением того, что не добавил буцтрап в админский модуль и пока еще не проинитил в буцтрапе приложения _initAppAutoload()
- т. к. мне непонятно, почему здесь мы видим App
- в квикстарте никакого App
нету... будем посмотреть.
Дальше создал папку application/views/layouts
, в нее поместил default.phtml
и admin.phtml
- лэяуты для дефолтного и админского модулей соответственно.
Дальше, как и у мистера Кеппенса, добавил в конфиг следующее:resources.layout.layoutPath = APPLICATION_PATH "/views/layouts"
resources.layout.layout = default
admin.resources.layout.layout = admin
А вот потом, несколько подумав, решил таки воспользоваться его хелпером для подгрузки лэяутов. Долго думал, куда же мне положить этот хелпер - у автора он лежит в его собственной лайбрари, но в предыдущих проектах мы клали экшен хелперыы прямо в approot, что мне кажется не совсем правильным - грубо говоря, засирается папка, да и как-то не по-зендовски это. В итоге, было решено в папке мой_проект/library
создать папку для, так сказать, собственной библиотеки: мой_проект/library/Spod
. И хелпер поместил по пути, аналогичному тому, где лежат экшен хелперы в родной зендовской библиотеке, предварительно, естественно, посоздавав соответствующие папки: мой_проект/library/Spod/Controller/Action/Helper/LayoutLoader.php
.
Ну и проинитил в буцтрапе, как и автор.
После этого, обновив страничку, обнаружил ошибку, что мой класс не найден. Вспомнил, что автор в начале статьи прописал свою библиотеку в конфиг. Так же сделал и я:autoloaderNamespaces.spod = "Spod_"
Работает so far :)
02 August, 2009
Мой опыт в создании модульного приложения на Zend Framework: Часть 1
Posted at 13:22
Labels: modular, zend framework, zend tool, zend_layout
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment