Конфигурация Доктрины 2 - PullRequest
       2

Конфигурация Доктрины 2

0 голосов
/ 24 декабря 2010

Я новичок в изучении Доктрины. Я пошел на их сайт и нашел версию 2.0 (стабильную), которая оказалась последней. Устанавливал его методом PEAR, хотя возникли некоторые трудности. Документация показалась мне довольно грязной, однако я искал по интернету и нашел образцы файла boostrap. Документацию по Doctrine 2.0 можно найти здесь .

`Я действительно следовал инструкциям и включил файл загрузки классов, как с require_once ('libs / Doctrine / Common / ClassLoader.php'); в начале.

$classLoader = new \Doctrine\Common\ClassLoader('Doctrine', 'libs');
$classLoader->register();

$classLoader = new \Doctrine\Common\ClassLoader('Symfony', 'libs');
$classLoader->register();

$classLoader = new \Doctrine\Common\ClassLoader('Entities', 'libs');
$classLoader->register();

$classLoader = new \Doctrine\Common\ClassLoader('Dao', 'libs');
$classLoader->register();

$config = new \Doctrine\ORM\Configuration();
$config->setMetadataCacheImpl(new \Doctrine\Common\Cache\ArrayCache);
$config->setProxyDir('/Proxies');
$config->setProxyNamespace('Proxies');

$driverImpl = $config->newDefaultAnnotationDriver(array("/Entities"));
$config->setMetadataDriverImpl($driverImpl);

$connectionOptions = array(
'dbname' => 'db',
'user' => 'root',
'password' => 'mypassword',
'host' => '127.0.0.1',
'driver' => 'pdo_mysql',);

$em = \Doctrine\ORM\EntityManager::create($connectionOptions, $config);

// At this point no actual connection to the database is created
$conn = \Doctrine\DBAL\DriverManager::getConnection($connectionOptions);//('mysql:  //root:127.0.0.1@127.0.0.1/db');
// The first time the connection is needed, it is instantiated
// This query triggers the connection to be created
$conn->exec('SHOW TABLES');`

Обнаружено, что метод "execute" является "exec" в версии 2, и что вы используете DriverManager в версии 2 вместо чего-то еще. Теперь, когда я пытаюсь проверить, работает ли Doctrine, он не выдает никаких результатов и выдает ошибку неожиданного T_STRING, что фактически означает, что команды не поняты.

В версии 1.2 есть тест с getPath (), но эта функция отсутствует в версии 2.0, или, может быть, я что-то не так делаю. Обратите внимание, что $ conn-> exec также ничего не делает.

Я использую Windows 7 и сервер WAMP версии 2, PHP 5.3.3. Я вывожу папку с Doctrine в директорию моего проекта, хотя я не понимаю, для чего была сделана установка PEAR? Есть ли возможность использовать Doctrine без добавления в каталог проекта?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 08 июля 2011

Я не могу точно сказать, как вы описали проблему, но я предлагаю вам использовать отладчик, такой как встроенный в Zend Studio (или вы можете настроить Zend с помощью любой IDE на основе затмения, такой как Aptana) , Это сделает вещи намного яснее.

0 голосов
/ 28 декабря 2010

Зачем вам нужно запускать соединение?Он подключается лениво при первом использовании.После метода EntityManager :: create у вас все должно быть хорошо.

...