require_once doctrine manquante zend framework
-
26-09-2019 - |
Question
J'intégrer la doctrine avec Zend Framework. Je l'ai frappé une erreur renvoyée de cli. Il semble Zend_Application_Bootstrap_Bootstrap n'a pas de require_once pour Zend_Application_Bootstrap_BootstrapAbstract. Quelqu'un at-il frappé ce?
mes cli-config.php
<?php
$classLoader = new \Doctrine\Common\ClassLoader('App', __DIR__ . "/../application/models");
$classLoader->register();
$classLoader = new \Doctrine\Common\ClassLoader('Cms', __DIR__ . "/../application/modules/cms-modules/models");
$classLoader->register();
$classLoader = new \Doctrine\Common\ClassLoader('Proxies', __DIR__ . "/../application/models");
$classLoader->register();
$config = new \Doctrine\ORM\Configuration();
$config->setMetadataCacheImpl(new \Doctrine\Common\Cache\ArrayCache);
$driverImpl = $config->newDefaultAnnotationDriver(array(
__DIR__."/../application/models/App",
__DIR__."/../application/modules/cms-modules/models/Cms"
));
$config->setMetadataDriverImpl($driverImpl);
$config->setProxyDir(__DIR__ . '/Proxies');
$config->setProxyNamespace('Proxies');
// Database connection information
$connectionOptions = array(
'driver' => 'pdo_mysql',
'dbname' => 'bella',
'user' => 'username',
'password' => 'password',
'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock'
);
$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)
));
La solution
classe Bootstrap doit Bootstrap prolonge la classe abstraite.
class Bootstrap extends Zend_Application_Module_Bootstrap {
//.....
}
Autres conseils
Zend_Application ne pas utiliser require_once. Il est l'un des premiers paquets dans ZF 1. * qui nécessite le Zend autochargeur.
Yep remplacer la classe doctrine chargeur avec le chargeur automatique de Zend a fait l'affaire. Je devais ajouter le chemin aux espaces de noms directement sur le chemin de PHP en utilisant set_include_path. Y at-il une façon plus agréable de le faire? Je vois le chargeur de classe de Doctrine vous permet de spécifier à la fois le chemin et l'espace. Merci pour votre aide beberlei et Alex