我在任何Symfony安装之外单独创建一个Symfony包,用于我的几个项目。我是Symfony中这类工作流程的新手,我对如何最好地接近它感到困惑。
我知道我可以编写单元测试来测试bundle的功能方面,但是我还绘制了大约25个Doctrine实体,我宁愿不必手动定义getter / setter。
我假设我能够安装Composer依赖项,然后使用vendor/bin/doctrine
生成它们,但是Doctrine会抛出一个错误,说我应该定义一个config-cli.php
文件,用于实例化实体经理,需要连接。
没关系,但鉴于没有实际的数据库(理论上),我不想定义连接。我只想生成实体并使用PHPUnit测试我的服务,然后将软件包加载到实际的Symfony安装中。
我是不是错了?解释工作流程的文章非常有用,但我没有通过谷歌找到任何东西。
答案 0 :(得分:0)
生成getter和setter是IDE的常见功能。您可以使用免费的NetBeans IDE,而有些人可能更喜欢为PhpStorm支付一些钱。两个IDE都可以为您生成getter和setter。
答案 1 :(得分:0)
因此,如果没有实体管理器的实例,它似乎无法运行generate:*
命令,甚至不能生成getter / setter。不幸的是,这意味着需要连接,这是我在开发阶段试图避免的。
我一直在浏览一些比较流行的Symfony捆绑包,试图弄清楚它们是如何处理它的。从我可以收集到的模式是在Model/
命名空间中使用标准DocBlocks为属性定义一个基础的,非特定于供应商的模型(任何ol'生成器都可用于解析和生成getter / setters for,然后在Entity/
命名空间内的Doctrine特定实体中扩展类。
当Entity\Foo
扩展Model\Foo
时,类型提示仍然有效,您只需要覆盖属性注释和任何需要Doctrine特定代码的方法。
虽然最初的工作多一点(忽略了生成过程),但我实际上喜欢这种方法。它不仅使重复的getter / setter样板代码与Doctrine映射分开,而且它实际上遵循最佳实践,将模型与Doctrine完全解耦。