我正在开发一个在控制台中运行的简单todos应用程序。该应用程序只有两个依赖项:
- "条令/形式":"~2.4"
- "symfony/console":"~2.6"
我试着看看我是否可以用将我的自定义"任务"实体持久化到数据库中
$ vendor/bin/doctrine orm:schema-tool:update --dump-sql
在控制台中运行。SQL是正确生成的——到目前为止还不错。
后来,我创建了自己的Symfony控制台命令todo:add
。在引导程序文件中,我放置了以下代码来注册命令:
$application = new Application('Todos', '0.1.0');
$application->add(new AddTaskCommand($entityManager));
$application->run();
强制cli-config.php
需要包含此代码段的引导程序文件。
从现在起,通过调用$ vendor/bin/doctrine
显示的唯一可用命令是我的新自定义命令及其名称空间。所有其他带有条令ORM的名称空间和命令都不可用。
因此,无法再运行$ vendor/bin/doctrine orm:schema-tool:update
。
如何在不删除其他条令控制台命令的情况下添加自己的命令?
您不应该编辑vendor
目录中的任何内容。vendor/bin/doctrine
应该只适用于条令包附带的命令。
如果你想要自定义命令,你应该用你在其中显示的代码创建一个新的可执行文件(例如bin/my_app
)。然后你就可以使用$ bin/my_app todo:add
了。