我尝试了几个Web开发框架,例如Zend Framework 1/2、Yii、Ruby on Rails、Django for Python、Spring+myBatis等。它们中的大多数都附带代码生成器,可以减轻编写 CRUD、表数据编辑和 SQL 迁移(等等)的负担。例如,Yii 中的 Gii、ROR 上的迁移工具、myBatis 的 myBatis 生成器、Django 应用程序管理器等。但我在ZF没有找到同样的工具。
ZF2 中的代码生成有什么有用的功能吗,示例功能如下:
对于ZF1,可以使用Zodeken,它提供了完整的crud接口。因为 zf2 正在开发中。
Zend Framework 附带“Zend Framework Tool”
ZF2: http://framework.zend.com/manual/2.1/en/modules/zendtool.introduction.html
ZF 1.X: http://framework.zend.com/manual/1.12/en/zend.tool.framework.clitool.html
用它你可以初始化项目,添加控制器、模型、表单等。我只使用过ZF 1.X工具。它对于设置初始目录布局很方便。
这比您可能想要的水平要低一些,但是 ZF2 中有一个强大的包用于代码反射、扫描和生成。在内部,我们使用 Doctrine2 对象管理器从 Doctrine2 模式生成完整的 mvc 堆栈。不幸的是,它不是很模块化,我无法直接与您分享源代码。这是包裹:
http://framework.zend.com/apidoc/2.2/namespaces/Zend.Code.html
https://github.com/zendframework/Component_ZendCode
专业提示 1:在生成器中使用 Twig 而不是 phtml 进行模板化,因为使用 phtml 模板来编写 PHP 非常困难...经过一番艰难的学习才知道这一点 :-/
专业提示 2:扫描仪对于读取代码非常有用,而无需实例化它。这对我们来说很方便,因为我们在生成器中使用了故障保护功能,它表示如果文件存在,则它必须包含文档块注释
@overwrite true
,否则它不会更新该文件。因此,我们必须在输出之前扫描每个文件。反射对于视图脚本之类的东西不起作用,但扫描效果很好!
对于 zend.framework 1 (ZF1) 我已经做了一个 CRUD (代码生成器) zend-crud 。尝试一下:https://magentoparty.com/zend-crud/
这是我的一个朋友创建的工具,它是用java制作的,非常直观,如果您有关于如何使用它的问题,请告诉我