Doctrine 原则2.2比斯纳CLI

Doctrine 原则2.2比斯纳CLI,doctrine,doctrine-orm,Doctrine,Doctrine Orm,我没法让比斯纳学说起作用。它抱怨找不到Symfony控制台应用程序。请注意,它试图在doctor/Symfony/Console/Symfony/Component/Console的嵌套目录中查找它。有人见过这个吗 PHP Warning: require(/Users/jhicks/workspace/production/application/../library/Doctrine/Symfony/Console/Symfony/Component/Console/Application

我没法让比斯纳学说起作用。它抱怨找不到Symfony控制台应用程序。请注意,它试图在doctor/Symfony/Console/Symfony/Component/Console的嵌套目录中查找它。有人见过这个吗

PHP Warning:  require(/Users/jhicks/workspace/production/application/../library/Doctrine/Symfony/Console/Symfony/Component/Console/Application.php): failed to open stream: No such file or directory in /Users/jhicks/workspace/production/library/Doctrine/Common/ClassLoader.php on line 163
PHP Fatal error:  require(): Failed opening required '/Users/jhicks/workspace/production/application/../library/Doctrine/Symfony/Console/Symfony/Component/Console/Application.php' (include_path='/Users/jhicks/workspace/production/library:.:/opt/local/lib/php') in /Users/jhicks/workspace/production/library/Doctrine/Common/ClassLoader.php on line 163

这是Bisna的doctrine cli的Github页面:

在Github中有许多名为Semfes Bisna的存储库,如果没有进一步的信息,很难找到您正在使用的存储库

最初的版本是由Guillerme Blanco(Bisna曾是他的昵称)创建的,名为Zend Framework 1+Doctrine2,工作起来很有魅力,但它没有捆绑运行CLI工具所需的Symfony组件

您需要做的是从GitHub下载它们(搜索“Symfony”,您将在组织存储库中找到组件),并将它们放在项目的库文件夹中,注意命名约定

如果您提供了生成此错误的代码片段以及您正在使用的存储库和版本,那么将更容易检测错误并给出更好的答案。尝试猜测错误的类型是幼稚的,但您可能在名称空间和/或如何调用Symfony的控制台组件方面存在问题


如果您需要有关如何实现此集成的一些指导,可以查看Blanco的存储库内部。

看起来我需要将这两行添加到现有的autoloader引导方法中:

$symfonyAutoloader = new \Doctrine\Common\ClassLoader('Symfony', 'Doctrine');   
$autoloader->pushAutoloader(array($symfonyAutoloader, 'loadClass'), 'Symfony');
我认为这没有必要,因为我在application.ini文件的autoloaderNamespaces数组中包含了Symfony

autoloaderNamespaces[] = "Symfony"

我使用的是最新版本的条令,其中包含了现成的Symfony组件。没有必要单独下载它们。我使用的是您所指的Bisna-最新版本,该版本已更新,也适用于最新版本的条令:。我想我可能已经找到了解决办法,但要到早上才能测试。我想我可能在某个地方实例化了一个类,该类缺少使用PHP5.3名称空间时所需的前导反斜杠。不,看不出问题出在哪里。正如我所说,这与缺少前导反斜杠并试图使用类时非常相似,它使用您所在文件的名称空间来尝试和定位它。