Полный стек по сравнению с не полным стеком MVC PHP фреймворки - какая разница? - PullRequest
9 голосов
/ 02 октября 2009

Я продолжаю видеть, что CakePHP и CodeIgniter называются средами MVC с полным стеком, тогда как Zend Framework называется не полным стеком. Что именно это значит?

1 Ответ

13 голосов
/ 02 октября 2009

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

Фреймворк с полным стеком означает, что использование любой его части зависит от того, используете ли вы ее все. Например, вы должны использовать библиотеку доступа к данным инфраструктуры, архитектуру MVC, леса создания кода и т. Д., И все эти компоненты зависят друг от друга, работая вместе для формирования полной структуры.

Re ваш комментарий: Да, сцепление это один из способов взглянуть на это. Я смотрю на это как на баланс между предположениями и гибкостью. Полнофункциональный фреймворк предполагает, что вы используете весь фреймворк вместе, и из этого предположения может произойти какое-то дополнительное волшебство.

ZF был разработан, чтобы минимизировать допущения (то есть минимизировать сцепление). Его компоненты делают несколько предположений о том, используете ли вы остальные компоненты, уменьшая зависимости, но повышая гибкость. Но меньше предположений означает меньше магии.

Оба стиля фреймворка имеют законные преимущества.


* Одно ключевое отличие между простой библиотекой классов и каркасом состоит в том, что каркас предназначен для расширения. Вам предлагается улучшить функциональность фреймворка с помощью механизмов OO, таких как создание подклассов или полиморфизм. В то время как библиотека классов может предполагать, что вы будете использовать ее API как есть, не расширяя его функциональность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...