Zend framework 使用条令cli时,无法使用cli-config.php文件中的条令2类加载器加载\条令\ORM\Configuration()类

Zend framework 使用条令cli时,无法使用cli-config.php文件中的条令2类加载器加载\条令\ORM\Configuration()类,zend-framework,doctrine-orm,integrate,Zend Framework,Doctrine Orm,Integrate,为了集成Zend Framework 1.11和条令2,我遵循了以下文章中的步骤: 关于这篇文章,我有三个问题: 1-在“SchemaToolClass”一节中,我不明白作者为什么在ZendProject/public/index.php文件的底部包含schema_tool.php,后面是: $application->bootstrap() ->run() 2-当我执行命令“php:orm:schema-tool:create”时,命令行中出现以下错误消息: HP堆栈跟踪: PHP1。{ma

为了集成Zend Framework 1.11和条令2,我遵循了以下文章中的步骤:

关于这篇文章,我有三个问题:

1-在“SchemaToolClass”一节中,我不明白作者为什么在ZendProject/public/index.php文件的底部包含schema_tool.php,后面是: $application->bootstrap() ->run()

2-当我执行命令“php:orm:schema-tool:create”时,命令行中出现以下错误消息: HP堆栈跟踪: PHP1。{main}()/Library/WebServer/Documents/carlending/application/tools/doctrine:0 PHP2。include()/Library/WebServer/Documents/carlending/application/tools/document:7 PHP3。require()/Library/WebServer/Documents/carlending/application/tools/doctrine.php:41 PHP4。条令\Common\ClassLoader->loadClass($className=未初始化) 该错误出现在cli-config.php文件的“$config=new\doctor\ORM\Configuration();”行中

3-你能解释一下作者为什么将原则生成的代理和模型放在域文件夹中吗。它们像其他模型类一样驻留在models文件夹中不是更好吗。 有时我还看到一些程序员在模型中使用“生成”文件夹

如果你成功地将Zend 1.x和Doctrine进行了工作集成,如果你也能给我发送一个非常有用的工作项目,我将非常高兴


谢谢你的帮助。

几周前我已经让它工作了,这是我的代码。原则2真的很好:)

在我的引导程序中 图式等 正如您在上面看到的,我使用yaml,我没有看过教程,但我使用了像符咒一样工作的命令行工具my doctor.php(位于APPLICATION/bin中):

您首先必须生成实体:

  • 生成所有模型而不删除,还创建注释- ./orm:生成实体~/Public/my_app/application/models/--重新生成实体0--生成注释1
然后生成您的模式 orm:模式工具:创建--转储sql 或 orm:schema工具:更新--转储sql

代理并不是模型的一部分,它只是在内部由条令使用,因此我将其作为模型文件夹中的一个单独实体,但我想这并不重要: ./orm:生成代理~/Public/my_应用程序/代理/

请记住向apache组的代理添加写入权限

嗯。。。我想我没有很好地解释Jeboy的解决方案,但也许我的代码可以帮助您开始,这花了我一段时间,但一旦它启动并运行,它就像一个符咒:) PS阅读中的“获取EntityManager”部分后,不要忘记每个模型中的“名称空间实体”(应该自动生成)

我认为您需要以下三行代码来引导:

use Doctrine\ORM\Tools\Setup;
require_once 'Doctrine/ORM/Tools/Setup.php';
Setup::registerAutoloadPEAR();
// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/..'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path()
)));

/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/../configs/application.ini'
);

$application->getBootstrap()->bootstrap('doctrine');


require_once __DIR__ . '/../Bootstrap.php';

$em = $application->getBootstrap()->getResource('doctrine');

$helperSet = new \Symfony\Component\Console\Helper\HelperSet(array(
    'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($em, APPLICATION_PATH . "/configs/mappings")
));

\Doctrine\ORM\Tools\Console\ConsoleRunner::run($helperSet);
use Doctrine\ORM\Tools\Setup;
require_once 'Doctrine/ORM/Tools/Setup.php';
Setup::registerAutoloadPEAR();