我可能在理解 Symfony 控制台组件方面遇到了一些基本问题。我正在尝试编写一个基于控制台的应用程序,我想将 Doctrine 包添加到它以创建基于 ORM 的实体,但是,我无法将包加载到我的应用程序中。
我发现我应该app/AppKernel.php
在那里创建并添加捆绑包:
public function registerBundles()
{
$bundles = array(
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
);
return $bundles;
}
然后,我还将 AppKernel 添加到 composer.json 并转储了 composer 的自动加载文件:
"classmap": [ "app/AppKernel.php" ]
但是,我仍然无法在控制台应用程序的入口点中看到任何 Doctrine 命令。我什至不认为内核加载正确,对我来说最令人困惑的部分是 Github 上这两个文件之间的区别。首先,您有控制台组件Application.php
,它使用字符串作为其构造函数参数:
https://github.com/symfony/console/blob/master/Application.php
然后在 Symfony 框架中有相同的文件,该文件使用内核作为参数:
https://github.com/symfony/framework-bundle/blob/master/Console/Application.php
那么我在这里完全走错了吗?如何在控制台组件应用程序中加载包/内核?或者我需要完整的 Symfony 包来做这种事情吗?如果我只需要编写一个有点复杂的终端应用程序,那似乎有点矫枉过正。
以防万一,这些是我的相关软件包composer.json
:
"symfony/console": "v3.3.*",
"symfony/yaml": "v3.3.*",
"doctrine/orm": "~2.5",
"doctrine/doctrine-bundle": "~1.6",
"doctrine/doctrine-cache-bundle": "~1.2",