当您阅读本文时,ZendFramework团队已经发布了1.8.0的预览版本。虽然最终版本计划于本月晚些时候发布,但此版本代表了许多贡献者的辛勤工作,并展示了各种强大的新组件。
如果您是ZendFramework用户,您应该试用一下预览版,看看它能做什么:
- 1.8预览版(zip)
- 1.8预览版(压缩包)
对ZendFramework的一个普遍批评是它不符合框架的传统定义。引用的一个定义来自TheFreeDictionary,包括以下两个可能的匹配项:
一种用于支撑或包围其他东西的结构,尤其是用作正在建造的东西的基础的骨架支撑。
一种用于支撑或包围其他东西的结构,尤其是用作正在建造的东西的基础的骨架支撑。
一组假设、概念、价值观和实践,构成了一种看待现实的方式。
一组假设、概念、价值观和实践,构成了一种看待现实的方式。
争论的焦点是ZF不提供关于应如何构建应用程序的“假设”或意见。然而,这只有在您接受框架应该始终遵循“约定优于配置”规则的想法时才有意义——我们坚决反对ZendFramework。我们的观点一直是,开发人员最清楚应该如何构建他们的应用程序,并且ZFcode应该支持他们将应用程序用于的无数用途。
也就是说,随着Zend_Application和Zend_Tool的加入,ZendFramework现在为其用户提供了一个综合的框架,并且为开发人员提供了强加他们需要的任何结构的灵活性。
Zend_Tool
为ZendFramework提供了一个工具框架。它允许您创建自己的工具提供程序,然后可以由使用RPC样式架构的工具客户端使用。我们现在发布了一个控制台或命令行界面(CLI)客户端,允许您执行各种任务,例如设置初始项目结构、向项目添加新资源、向控制器添加操作方法和视图脚本等。例如,您现在可以这样做:
$ zf create project foo
并在名为“foo”的目录中为新项目生成框架,结构如下:
|-- application | |-- Bootstrap.php | |-- configs | | `-- application.ini | |-- controllers | | |-- ErrorController.php | | `-- IndexController.php | |-- models | `-- views | |-- helpers | `-- scripts | |-- error | | `-- error.phtml | `-- index | `-- index.phtml |-- library |-- public | |-- .htaccess | `-- index.php `-- tests |-- application | `-- bootstrap.php |-- library | `-- bootstrap.php `-- phpunit.xml
在未来,我们将增加对此的更多支持。非常感谢RalphSchindler在这个项目上承担了繁重的工作。
Zend_Application
提供PHP环境和应用程序环境的引导。当使用Zend_Application
时,您将创建一个应用程序引导类,它可以使用资源插件类或在内部定义初始化例程;无论如何,它允许您定义资源依赖关系并引导应用程序的各个方面。更好的是,它引入了模块作为应用程序的一等公民。随着Zend_Loader_Autoloader_Resource
和Zend_Application_Module_Autoloader
的引入,您现在可以使用自动加载来解析模块中的各种资源类——例如模型、表单和插件。这极大地简化了故事利用来自其他模块的资源,以及使用同一模块内的资源。非常感谢BenScholzen让球在Zend_Application
上滚动以及他对组件的重要贡献。
此版本中还有许多其他故事:
- AmazonEC2和S3支持(分别由JonWhitcraft和JustinPlock/StasMalyshev贡献)
Zend_Navigation
,一个生成和组织导航元素的综合解决方案用于面包屑、导航菜单、站点地图等(由来自Zym的RobinSkoglund和GeoffreyTran贡献)- 大量添加到
Zend_Validate
和Zend_Filter
支持(主要由ThomasWeidner提供) - 改进
Zend_Search_Lucene
支持,包括通过查询字符串搜索多个索引和关键字字段搜索(由AlexanderVeremyev提供) Zend_Pdf
的改进,包括页面缩放、移动和倾斜(由AlexanderVeremyev提供)- 等等……
衷心感谢迄今为止为此版本做出贡献的所有人。开始测试它,让我们知道我们可以为本月晚些时候的最终1.8版本改进什么!