Почему контроллеры действий Zend Framework имеют суффикс? - PullRequest
0 голосов
/ 14 августа 2010

Я совершенно новый пользователь Zend Framework, но я не новичок в PHP или программировании. Я пробовал код, чтобы попытаться понять, как все соединяется. Одна из частей, на которую я смотрел, - это как классы автоматически загружаются в систему. Я вижу, что:

  • Zend_Application_Bootstrap ссылается на Zend / Application / Bootstrap.php
  • Zend_Controller_Action ссылается на Zend / Controller / Action.php
  • ... и т. Д.

По сути _ преобразуется в разделитель каталогов и автоматически загружается.

Что я не понимаю (хотя я уверен, что есть веская причина), почему это соглашение не соблюдается для контроллеров действий?

  • Ссылки на IndexController Application / controllers / IndexController.php

Почему бы и нет:

  • Application_Controllers_Index -> /Application/Controllers/Index.php
  • или
  • Controllers_Index -> /Application/Controllers/Index.php

Я предполагаю, что присвоение классу суффикса уменьшает некоторую сложность в системе где-то, с первого взгляда на Zend Framework все очень хорошо продумано - я не могу представить, что соглашения вводятся без уважительной причины.

Может кто-нибудь объяснить, почему контроллеры имеют префикс, или даже лучше указать мне код в ядре, показывающий, почему они должны иметь префикс?

Спасибо:)

Ответы [ 3 ]

5 голосов
/ 14 августа 2010

Если честно, я не совсем уверен, почему конвенции были изначально разработаны.Я подозреваю, что они имели отношение к тому, как развивались другие фреймворки в то время - в частности, RoR зашкаливал в популярности, и именно так они определяли ресурсы приложений.(Во время первоначальной итерации MVC я только начинал в Zend; я переписал ее осенью 2006 года, но цель этого состояла в том, чтобы сохранить его в соответствии с тем, что было разработано ранее, одновременно предлагая лучшее и большегибкость.)

Мы продолжили эту парадигму, поскольку она укрепляет идею о том, что все элементы в приложении / иерархии - это ресурсы , а не код вашей библиотеки.Это особенно важно из-за того, что в этом дереве может быть неклассный код (просмотр скриптов, макетов и т. Д.).

Однако это определенно привело к нескольким головным болям - введение загрузчика ресурсов показывает, что у нас возникла проблема, которую нам нужно было решить.Загрузчик ресурсов в основном устраняет симптомы, но не обязательно является основной причиной (плохие соглашения).Поскольку мы работаем над ZF2, мы вернемся к этому вопросу.Если вы заинтересованы в публикации своих мыслей, я предлагаю вам сделать это в списке рассылки zf-contributors.

0 голосов
/ 14 августа 2010

Я только новичок в Zend Framework, но из того, что я могу сказать, учитывая то, как сейчас работает Zend Framework, нет веских причин для этого.Я не уверен, что это похмелье от того, как все началось, или просто предпочтения вовлеченных людей, но я слышал, что это изменится для ZF 2.0.

0 голосов
/ 14 августа 2010

Имена файлов и имена классов контроллеров должны иметь постфиксный контроллер.Зенд видит постфикс в имени класса и понимает, что это контроллер.Он находит этот класс в папке контроллеров.

...