之前从未接触过Doctrine(1或2),我正在关注this tutorial for Doctrine 2。
我正处于使用命令行生成数据库模式的位置。这是cli-config.php文件,根据教程:
<?php
$cliConfig = new Doctrine\Common\Cli\Configuration();
$cliConfig->setAttribute('em', $entityManager);
当我运行它时,我只是得到一个错误:
Fatal error: require(): Failed opening required 'Doctrine\Common\Cli\Configuration.php'
因为cli-config.php文件引用的类不存在。我也试过消隐cli-config.php文件,这当然也不起作用 - 说“帮助器”em“没有定义。”
我正在使用版本2.0.0BETA3。我知道这是一个测试版,所以他们可以更改一些文件,但我无法在任何地方找到该类。
关于如何使其发挥作用的任何想法?
答案 0 :(得分:2)
XML入门中的文档在这方面已经过时了。请参阅手册中有关如何配置CLI工具的“工具”部分:
http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/tools.html
所有其余的仍然按照描述的方式工作。我会尽快更新这部分内容。
答案 1 :(得分:2)
假设您使用 pear
安装了Doctrine$ sudo pear install pear.doctrine-project.org/doctrineORM
将安装三个“Doctrine 2”软件包:DoctrineCommon,DoctrineDBAL和DoctrineORM。在Ubuntu上,这些包将位于/ usr / share / php / Doctrine中,而doctrine命令行实用程序将安装在/ usr / bin中。
使用此设置,这是您可以使用的cli-config.php版本(注意: DIR 在它之前和之后应该有两个下划线。出于某种原因,它们没有显示)。
<?php
require ‘Doctrine/ORM/Tools/Setup.php’;
// Setup Autoloader (1)
Doctrine\ORM\Tools\Setup::registerAutoloadPEAR();
require_once 'Doctrine/Common/ClassLoader.php';
$classLoader = new Doctrine\Common\ClassLoader('Entities', __DIR__);
$classLoader->register();
$classLoader = new Doctrine\Common\ClassLoader('Proxies', __DIR__);
$classLoader->register();
$config = new \Doctrine\ORM\Configuration();
$config->setMetadataCacheImpl(new \Doctrine\Common\Cache\ArrayCache);
$driverImpl = $config->newDefaultAnnotationDriver(array(__DIR__."/Entities"));
$config->setMetadataDriverImpl($driverImpl);
$config->setProxyDir(__DIR__ . '/Proxies');
$config->setProxyNamespace('Proxies');
$connectionOptions = array(
'driver' => 'pdo_mysql',
'dbname' => 'bugs',
'user' => 'bugs',
'password' => 'xyzabc',
'host' => 'localhost' );
$em = \Doctrine\ORM\EntityManager::create($connectionOptions, $config);
$helperSet = new \Symfony\Component\Console\Helper\HelperSet(array(
'db' => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($em->getConnection()),
'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($em)
));