使用Silex的命令行命令:您缺少一个;cli config.php";或;config/cli config.php“;项目中的文件

使用Silex的命令行命令:您缺少一个;cli config.php";或;config/cli config.php“;项目中的文件,php,symfony,doctrine,silex,Php,Symfony,Doctrine,Silex,我试图将ORM理论与Silex结合使用,但由于缺乏一致的文档,我发现这是一次完全令人沮丧的经历 当我在控制台上运行vendor/bin/doctor时,我得到以下输出: 输出: You are missing a "cli-config.php" or "config/cli-config.php" file in your project, which is required to get the Doctrine Console working. You can use the follow

我试图将ORM理论与Silex结合使用,但由于缺乏一致的文档,我发现这是一次完全令人沮丧的经历

当我在控制台上运行
vendor/bin/doctor
时,我得到以下输出:

输出:

You are missing a "cli-config.php" or "config/cli-config.php" file in your
project, which is required to get the Doctrine Console working. You can use the
following sample as a template:

<?php
use Doctrine\ORM\Tools\Console\ConsoleRunner;

// replace with file to your own project bootstrap
require_once 'bootstrap.php';

// replace with mechanism to retrieve EntityManager in your app
$entityManager = GetEntityManager();

return ConsoleRunner::createHelperSet($entityManager);
这是注册条令服务等的php代码

<?php

use Doctrine\Common\Cache\ApcCache;
use Doctrine\Common\Cache\ArrayCache;
use Silex\Provider\DoctrineServiceProvider;
use Dflydev\Provider\DoctrineOrm\DoctrineOrmServiceProvider;

$app->register(new DoctrineServiceProvider(), array(
                'db.options' => array(// http://silex.sensiolabs.org/doc/providers/doctrine.html
                    'driver' => 'pdo_mysql', 
                    'dbname' => 'foobar',
                    'host' => 'localhost',
                    'user' => 'root',
                    'password' => 'root',
                    'charset' => 'utf8'
                )
            ));

$app->register(new DoctrineORMServiceProvider(), 
                array(
                        'db.orm.proxies_dir'  => __DIR__.'/../cache/doctrine/proxy',
                        'db.orm.proxies_namespace'  => 'DoctrineProxy',
                        'db.orm.cache'  =>  !$app['debug'] &&extension_loaded('apc') ? new ApcCache() : new ArrayCache(),
                        'db.orm.auto_generate_proxies' => true,
                        'db.orm.entities' => array(array(
                                                        'type' => 'simple_yaml', 
                                                        'path' => __DIR__.'/src/Resources/config/doctrine',
                                                        'namespace' => 'Foobar\Entity',
                                                        )),
                ));

您需要在
config/cli config.php
中移动
bin/cli config.php


不幸的是,我没有找到关于它的文档。我打开了
doctrine/dbal/bin/doctrine dbal.php
并检查了它的工作原理。

cli config.php和bootstrap.php都应该放在相同的文件夹中。如果我把它们放在zend项目的根目录下或根目录->配置文件夹中,它们就是为我工作的

然后,mac上终端中的orm:convert映射命令成功运行

./vendor/bin/doctrine orm:convert-mapping --namespace="Quiz\Model\Entity" --force  --from-database annotation ./module/Quiz/src/Model/

config/cli config.php
中移动
bin/cli config.php
@Leggendario:如果这本书被记录在某个地方(或者我错过了它),那该多好啊?事实证明,这似乎就是答案,所以将其作为答案提交,这样我就可以接受它。如果bin文件夹中没有
cli config.php
文件,该怎么办?
<?php

// retrieve EntityManager
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Tools\Console\ConsoleRunner;

$app = require_once __DIR__.'/../app/src/app.php';

$isDevMode = $app['debug'];

$paths = $app['db.orm.entities']['path'];
$config = Setup::createYAMLMetadataConfiguration($paths, $isDevMode);
$entityManager = EntityManager::create($app['db.options'], $config);

return ConsoleRunner::createHelperSet($entityManager);
./vendor/bin/doctrine orm:convert-mapping --namespace="Quiz\Model\Entity" --force  --from-database annotation ./module/Quiz/src/Model/