Symfony 2 Doctrine 2 EntityManager配置

时间:2016-09-30 12:40:41

标签: php symfony doctrine-orm

我试图让我的Doctrine CommandLine工具在Windows 7上的Symfony 2项目中运行,并且我在控制台中不断收到相同的错误消息:

Fatal error: Call to protected Doctrine\ORM\EntityManager::__construct()
from invalid context in C:\wamp\www\firstSymfonyApp\cli-config.php on line 9

Call Stack:
0.0010     239440   1. {main}() C:\wamp\www\firstSymfonyApp\vendor\doctrine\orm\bin\doctrine.php:0
0.0090     621376   2. require('C:\wamp\www\firstSymfonyApp\cli-config.php') C:\wamp\www\firstSymfonyApp\vendor\doctrine\orm\bin\doctrine.php:48

我的cli-config.php文件的代码:

<?php
use Doctrine\ORM\Tools\Console\ConsoleRunner;
require_once 'app/bootstrap.php.cache';
$em = new \Doctrine\ORM\EntityManager();
return ConsoleRunner::createHelperSet($em);

直到今天,我才在Linux上使用doctrine,安装更加简单,请帮我解决。

1 个答案:

答案 0 :(得分:0)

错误信息非常清楚。 EntityManager::__constructprotected方法,因此您无法在课堂外使用它。

结帐EntityManager::create

检查this link以获取有关如何开始使用Doctrine 2的更多信息。

这可能是你现在应该对你很重要的片段:

<?php
// bootstrap.php
require_once "vendor/autoload.php";

use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;

$paths = array("/path/to/entity-files");
$isDevMode = false;

// the connection configuration
$dbParams = array(
    'driver'   => 'pdo_mysql',
    'user'     => 'root',
    'password' => '',
    'dbname'   => 'foo',
);

$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
$entityManager = EntityManager::create($dbParams, $config);