Я следую учебному пособию, которое, по-моему, написано кем-то, кто не знает, что делает (уже поймал 2 очевидные ошибки, а остальная часть кода запуталась). Но я не хочу полностью дискредитировать этого парня, поэтому я спрашиваю здесь о чем-то еще, что я не понимаю.
Прежде всего, я пошлю 100 очков брауни,
2 моих питомца и коробка с шоколадом
кто может объяснить мне, что это
происходит с этим кодом.
Он использует модульную архитектуру. Имя модуля frontmodule
. Модуль имеет MVC. И модуль имеет собственный внутренний library
.
/modules/
/frontmodule/
/models/
/views/
/controllers/ -- the /module controller is here (undestandable)
/library/
/Controller/ -- the /module/library controller is here (why?!)
/Action/
Сначала идет запутанная часть. Почему каждый модуль имеет внутреннюю библиотеку, и почему эта внутренняя библиотека имеет свои controllers
и actions
. Это лучшая практика? Я думаю, что эту библиотеку можно переместить в плагин, который может использовать модуль. Не уверен ..
Теперь идет интересная часть .... в дополнение к каждому модулю, имеющему свою собственную внутреннюю библиотеку, есть также общая библиотека, общая для всех модулей (см. Ниже на том же уровне папок, что и * 1022). *) и эта общая библиотека также имеет свои собственные контроллеры и действия (так же, как у каждой внутренней библиотеки есть свои собственные контроллеры и действия)
/modules
/library/
/Common/
/Controller/ -- the /common/library controller is here (why?!)
/Action/
/Helper/
/Plugin/
Итак, у нас есть 3 контроллера:
- модуль контроллера
- контроллер внутренней библиотеки модуля
- контроллер общей библиотеки
Теперь вот безумная часть, которую я считаю чрезмерно усложняющей жизнь
Он говорит: модуль контроллера расширяет
родительский контроллер библиотеки модуля
который также расширяет общую библиотеку
контроллер.
class IndexController
extends Frontoffice_Library_Controller_Action_Abstract { ... }
abstract class Frontoffice_Library_Controller_Action_Abstract
extends Custom_Controller_Action_Abstract { ... }
Итак, я думаю:
- модуль контроллера =
IndexController
- контроллер внутренней библиотеки модуля =
Frontoffice_Library_Controller_Action_Abstract
- контроллер общей библиотеки =
Custom_Controller_Action_Abstract
, где module controller
расширяется module internal library's controller
и module internal library's controller
расширяются common library's controller
Кто-нибудь видел что-нибудь подобное раньше? Я предполагаю, что этот код будет нелегко поддерживать, но, возможно, те, кто более опытен в Zend, могут сказать мне, чего этот парень пытается достичь. Структура приложения немного слишком грязная. Я думаю, что он злоупотребляет MVC вместо того, чтобы использовать его для упрощения приложения и его удобства обслуживания.