将自定义Symfony控制台命令添加到Doctrine ORM

时间:2015-02-14 21:53:33

标签: symfony orm doctrine-orm

我正在开发一个在控制台中运行的简单todos应用程序。该应用程序只有两个依赖项:

  • “doctrine / orm”:“~2.4”,
  • “symfony / console”:“〜2.6”

我试图看看是否可以使用

将我的自定义“任务”实体持久保存到数据库中

$ vendor/bin/doctrine orm:schema-tool:update --dump-sql在控制台中运行。 SQL已正确生成 - 到目前为止一切顺利。

后来,我创建了自己的名为todo:add的Symfony控制台命令。在bootstrap文件中,我放置了以下代码来注册命令:

$application = new Application('Todos', '0.1.0');
$application->add(new AddTaskCommand($entityManager));
$application->run();

强制cli-config.php

需要包含此代码段的引导程序文件

从现在开始,callng $ vendor/bin/doctrine显示的唯一可用命令是我的新自定义命令及其命名空间。

因此,无法再运行$ vendor/bin/doctrine orm:schema-tool:update

如何在不删除其他doctrine控制台命令的情况下添加自己的命令?

1 个答案:

答案 0 :(得分:0)

您不应编辑vendor目录中的任何内容。 vendor/bin/doctrine应该只需要Doctrine软件包附带的命令。

如果您想拥有自定义命令,则应使用您在其中显示的代码创建一个新的可执行文件(例如bin/my_app)。然后,您可以使用$ bin/my_app todo:add