将自定义 Symfony 控制台命令添加到 Doctrine ORM
Add custom Symfony console commands to Doctrine ORM
我正在开发一个 运行 在控制台中的简单待办事项应用程序。该应用程序只有两个依赖项:
- "doctrine/orm": "~2.4",
- "symfony/console": "~2.6"
我尝试查看是否可以使用
将我的自定义 'Task' 实体保存到数据库
$ vendor/bin/doctrine orm:schema-tool:update --dump-sql
运行 在控制台中。 SQL 已正确生成 - 到目前为止一切顺利。
后来,我创建了自己的 Symfony 控制台命令,名为 todo:add
。在 bootstrap 文件中,我放置了以下代码来注册命令:
$application = new Application('Todos', '0.1.0');
$application->add(new AddTaskCommand($entityManager));
$application->run();
包含此代码段的 bootstrap 文件是必需的 cli-config.php
。
从现在开始,callng $ vendor/bin/doctrine
显示的唯一可用命令是我的新自定义命令及其命名空间。 Doctrine ORM 附带的所有其他名称空间和命令均不可用。
因此,无法再运行 $ vendor/bin/doctrine orm:schema-tool:update
。
如何在不删除其他学说控制台命令的情况下添加自己的命令?
您不应编辑 vendor
目录中的任何内容。 vendor/bin/doctrine
应该只需要 Doctrine 包附带的命令。
如果您想要自定义命令,您应该使用您在其中显示的代码创建一个新的可执行文件(例如 bin/my_app
)。然后你可以使用 $ bin/my_app todo:add
.
我正在开发一个 运行 在控制台中的简单待办事项应用程序。该应用程序只有两个依赖项:
- "doctrine/orm": "~2.4",
- "symfony/console": "~2.6"
我尝试查看是否可以使用
将我的自定义 'Task' 实体保存到数据库$ vendor/bin/doctrine orm:schema-tool:update --dump-sql
运行 在控制台中。 SQL 已正确生成 - 到目前为止一切顺利。
后来,我创建了自己的 Symfony 控制台命令,名为 todo:add
。在 bootstrap 文件中,我放置了以下代码来注册命令:
$application = new Application('Todos', '0.1.0');
$application->add(new AddTaskCommand($entityManager));
$application->run();
包含此代码段的 bootstrap 文件是必需的 cli-config.php
。
从现在开始,callng $ vendor/bin/doctrine
显示的唯一可用命令是我的新自定义命令及其命名空间。 Doctrine ORM 附带的所有其他名称空间和命令均不可用。
因此,无法再运行 $ vendor/bin/doctrine orm:schema-tool:update
。
如何在不删除其他学说控制台命令的情况下添加自己的命令?
您不应编辑 vendor
目录中的任何内容。 vendor/bin/doctrine
应该只需要 Doctrine 包附带的命令。
如果您想要自定义命令,您应该使用您在其中显示的代码创建一个新的可执行文件(例如 bin/my_app
)。然后你可以使用 $ bin/my_app todo:add
.