使用 ZF2 组件,无需整个 MVC 流程

Posted

技术标签:

【中文标题】使用 ZF2 组件,无需整个 MVC 流程【英文标题】:Using ZF2 components without entire MVC process 【发布时间】:2015-01-12 21:37:22 【问题描述】:

在不使用 MVC 过程的情况下使用 Zend Framework 2 组件的可行性如何?例如,我喜欢表单/验证和 ACL 元素,但不确定在没有整个 MVC 系统的情况下这是否真的可行?

作为一个框架,ZF2 非常慢(尽管我认为它是一个非常好的系统),所以希望鼓励在没有整个包的情况下使用它。谢谢。

【问题讨论】:

【参考方案1】:

是的。 Zend Form 组件有一个separate repository,它可以在任何应用程序中作为一个组件在composer 的帮助下使用。 (我假设您正在使用 composer 并且您的应用程序也使用 composer 的自动加载器)它只需要 InputFilter 和 Stdlib 组件。

您可以轻松尝试。打开你的命令行:

$ cd /path/to/an-empty-folder

使用以下内容创建一个composer.json 文件


    "name": "Form Demo App",
    "require": 
        "php": ">=5.4",
        "zendframework/zend-form": "2.3.*@dev"
    

在输入之后

$ composer update

以下依赖项将自动安装到vendor 目录并创建composer.lock

Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing zendframework/zend-stdlib (2.3.3)
    Downloading: 100%         

  - Installing zendframework/zend-validator (2.3.3)
    Downloading: 100%         

  - Installing zendframework/zend-filter (2.3.3)
    Downloading: 100%         

  - Installing zendframework/zend-inputfilter (2.3.3)
    Downloading: 100%         

  - Installing zendframework/zend-form (2.3.3)
    Downloading: 100% 

从性能角度来看,ZF2 并不是很慢。您只需在生产环境中执行 couple of things 即可以更高的性能运行您的应用程序。

【讨论】:

感谢您的回答。几点-首先我不会使用作​​曲家,所以可以只使用文件/包含吗?其次感谢您的链接。这些点的问题(不是说你的链接不好!)是任何 Opcaching 总是有助于提高框架的性能(但是关于类映射的其他点很有趣)。从统计上看,每当我看到 Zend 的比较时,结果通常都非常慢(尽管我认为它是一个很棒的框架),所以在生产中我们故意推迟使用它。我认为这些问题是框架固有的。 存在很多指标来计算整体软件质量,例如可靠性、可测试性、可维护性、安全性、可扩展性、可移植性、开发成本、可用性等......不仅是效率。这是一个权衡。 ZF2、Symfony 2、Doctrine 2 都是不错的框架和库,但需要权衡取舍。如果您不编写单页 hello world 应用程序,您最重要的关注点不应该只是性能,永远不会。

以上是关于使用 ZF2 组件,无需整个 MVC 流程的主要内容,如果未能解决你的问题,请参考以下文章

Spring MVC学习—Spring MVC中的核心组件以及请求的执行流程

Spring之手写MVC三大核心组件

如何在 NextJS 中更新 <Image /> 标签的 src 而无需重新渲染整个组件

SpringMVC 主要组件说明

Spring MVC各组件近距离接触--中--03

MVC整体运行流程一(进入管道)