【问题标题】:Is there any code generator for Zend Framework?Zend 框架有代码生成器吗?
【发布时间】:2013-10-22 17:47:00
【问题描述】:

我尝试了几个 Web 开发框架,例如 Zend Framework 1/2、Yii、Ruby on Rails、Django for Python、Spring+myBatis 等等。它们中的大多数都带有一个代码生成器,可以减少编写 CRUD、表数据编辑和 SQL 迁移(等等)的负担。例如 Yii 中的 Gii、ROR 上的迁移工具、myBatis 的 myBatis 生成器、Django 应用管理器等等。但我在 ZF 中没有找到相同的工具。

在 ZF2 中是否有任何有用的代码生成示例功能:

  1. 视觉模型生成(如在 Gii 中);
  2. 命令行 SQL 生成和 DB 操作(如在 Django 中);
  3. 部署脚本生成。

【问题讨论】:

  • 似乎支持Doctrine + Zend。此外,Propel 内置了迁移支持,不确定 Doctrine。你用的是什么 ORM?
  • @halfer 看来Doctrine2是个不错的选择,和myBatis有点接近。我可能会更多地评估它。
  • 有一个 Zend CLI 工具,名为 ZendTool,用于 CRUD 和应用程序设置!

标签: php zend-framework zend-framework2 code-generation


【解决方案1】:

Zend 框架附带“Zend 框架工具”

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 工具。这对于设置初始目录布局很方便。

【讨论】:

  • 谢谢@Todd!我知道 ZF 工具并使用它一点点。但我认为这很粗糙。我正在寻找强大的东西。
【解决方案2】:

这比你想要的要低一点,但是 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:扫描器对于无需实例化即可读取代码非常有用。这对我们来说很方便,因为我们在生成器中使用了故障保护,它表示如果文件存在,它必须包含 docblock 注释 @overwrite true 否则它不会更新该文件。因此,我们必须在输出之前扫描每个文件。反射不适用于视图脚本之类的东西,但扫描效果很好!

【讨论】:

  • 感谢您的回复,@dualmon。我已阅读您在回复中提到的 api 文档。有没有消息说他们将增强 ZF_Tool 以提供更强大的功能?
  • 我不确定 ZF_Tool 的计划,但仅供参考,Zend Studio 对 ZF2 有一些支持。您可以在youtube.com/watch?v=EerB9bTvqrY 看到功能的演练(注意:这不是我们使用的工作流程,所以我无法从个人经验中谈论它,但您可能会发现它很有用)
【解决方案3】:

这是我朋友创建的一个工具,它是用java制作的,非常直观,如果您对如何使用它有任何疑问,请告诉我

https://bitbucket.org/Flavio378/jzftools/downloads/dist.zip

【讨论】:

    【解决方案4】:

    对于ZF1,你可以使用Zodeken,它提供了完整的crud接口。因为 zf2 正在开发中。

    https://code.google.com/p/zodeken/

    https://code.google.com/p/zodeken2/

    【讨论】:

    • 兄弟,你太棒了!如果可以的话,我会把我所有的名誉都转让给​​你。您共享的工具适用于 ZF1,什么教义:映射:导入 + 教义:映射:转换 + 教义:生成:实体 + 生成:教义:crud 适用于 Symfony2。非常感谢分享!!!!!!
    【解决方案5】:

    对于 zend.framework 1 (ZF1) 我已经做了一个 crud(代码生成器) zend-crud 。试试看:http://magentoyan.com/zend-crud.html

    【讨论】:

      猜你喜欢
      • 2010-10-22
      • 2011-02-18
      • 2013-02-23
      • 2015-11-16
      • 2010-10-29
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      相关资源
      最近更新 更多