Я уже давно работаю с Zend Framework (используя Doctrine как ORM), и сделал с ним несколько проектов.Виджеты внутри Zend Framework - Куда они должны идти?
В нескольких предстоящих проектах мне требуются виджеты, похожие на то, как Wordpress делает их. У вас есть записи/страницы, которая может выглядеть следующим образом:
Subscribe to my newsletter:
[subscribe/]
View my events
[events limit=5 sort=date/]
View this page's comments
[comments/]
Где говорят, подписываются виджет будет заменен Блог :: subscribeWidget, и события могут быть заменены События :: eventsWidget и т.д.
Теперь он сделал мою голову в последние несколько недель о том, как я это делаю? Я придумал следующие варианты:
Я могу разместить виджеты внутри контроллеров, а затем называть их как действия. Проблема здесь в том, что код может летать между контроллерами, и я прочитал, что это дорого из-за количества отправлений.
Я могу разместить виджеты в качестве помощников вида. Таким образом, в представлении у меня может быть $ this-> renderPage ($ Page), который затем будет обслуживать все виджеты. Проблема здесь в том, что, если виджеты должны выполнять некоторую бизнес-логику, например, например, опубликовать новый комментарий, который действительно не должен быть в представлении, не так ли?
Другой вариант - разместить виджеты внутри модели? Но тогда как же они тогда отображают контент для показа?
Дополнительные осложнения приходят, когда:
Произнесите комментарии виджет будет также обрабатывать проводки, удаление комментариев и т.д.
Say для события листинга, если я хочу сделать ajax на следующую страницу событий, используя метод # 2 (просмотреть помощники), как это будет работать?
Привет, Ричард благодарит за ответ, я очень благодарен. Я позволю вашему ответу, проблеме и дальнейшим вариантам использования кулинария в моем мозгу на некоторое время дольше и в конечном итоге пришел к решению. Который теперь оглядывается назад в значительной степени, что вы коснулись. Так что спасибо, и я отправлю подробное решение в течение следующих нескольких минут в качестве другого ответа. – balupton
Я рад, что вы нашли мой ответ полезным. Возможно, вы проголосуете за это, чтобы немного помочь моему представителю;) –
Будет ... Когда я смогу получить достаточное количество голосов, чтобы проголосовать! – balupton