Полный стек по сравнению с неполными платформами стека MVC PHP - каково различие?

Как это?

class MyLambda( object ):
    def __init__( self, body ):
        self.body= body
    def __call__( self, arg ):
        x = arg
        return eval( self.body )
    def __str__( self ):
        return self.body

f= MyLambda( "x == 2" )
print f(1)
print f(2)
print f
9
задан Steven Mercatante 1 October 2009 в 22:10
поделиться

1 ответ

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

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

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

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

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


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

13
ответ дан 4 December 2019 в 15:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: