0

我正在将教义与 Zend 框架集成。我遇到了 cli 抛出的错误。Zend_Application_Bootstrap_Bootstrap 似乎没有 Zend_Application_Bootstrap_BootstrapAbstract 的 require_once。有人打过这个吗?

我的 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)
));
4

3 回答 3

0

Bootstrap 类应该扩展 Bootstrap Abstract 类。

class Bootstrap extends Zend_Application_Module_Bootstrap {
   //.....
}
于 2010-09-02T06:23:46.400 回答
0

Zend_Application 不使用require_once。它是 ZF 1.* 中需要 Zend Autoloader 的首批软件包之一。

于 2010-09-02T10:33:21.083 回答
0

是的,用 Zend 的自动加载器替换了学说类加载器就可以了。我必须使用 set_include_path 将命名空间的路径直接添加到 php 路径。有没有更好的方法来做到这一点?我看到 Doctrine 的类加载器允许您指定路径和命名空间。感谢您的帮助 beberlei 和 Alex

于 2010-09-02T23:10:20.157 回答