NetBeans的include路径不起作用

时间:2014-03-11 10:16:17

标签: php zend-framework netbeans

我有一个可以在ZendFramework(库)上运行的NetBeansProject,并使用PHPUnit进行测试,但每次调用Zend Framework的某些函数(例如,引导文件调用它们)时,它会产生致命的错误,因为它可以找不到那些文件: 致命错误:require_once():未能打开所需的'Zend / Db / Table / Abstract.php'(include_path ='。; C:\ xampp \ htdocs \ pear; C:\ xampp \ php \ PEAR')...

我的bootstrap文件如下所示:

<?php

ini_set('display_startup_errors', 1);
ini_set('display_errors', 2);

defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

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

defined('LIBRARY_PATH')
    || define('LIBRARY_PATH', realpath(dirname(__FILE__) . '/../library'));

defined('TESTS_PATH')
    || define('TESTS_PATH', realpath(dirname(__FILE__)));


//Define constant global variable
defined('_FOO_ROOT_DIR_') || define('_FOO_ROOT_DIR_', dirname(dirname(__FILE__)));
defined('_FOO_APP_DIR_') || define('_FOO_APP_DIR_', _FOO_ROOT_DIR_ . '/application');
defined('_FOO_LIB_DIR_') || define('_FOO_LIB_DIR_', _FOO_ROOT_DIR_ . '/library');
defined('_FOO_PUBLIC_DIR_') || define('_FOO_PUBLIC_DIR_', _FOO_ROOT_DIR_ . '/public');
defined('_FOO_TEST_DIR_') || define('_FOO_TEST_DIR_', _FOO_ROOT_DIR_ . '/tests');
defined('_FOO_ZF_DIR_') || define('_FOO_ZF_DIR_', 'C:\zend\ZendFramework-1.11.11\library');

require_once 'Zend/Db/Table/Abstract.php';
.
.
.
.
#End of bootstrap.php

并且require_once是触发错误的原因。例如,如果我修改bootstrap文件而不是从'Zend / Db / Table / Abstract.php'执行require,我是从_FOO_ZF_DIR _。'/ Zend / Db / Table / Abstract.php'那样做的,那么问题就解决了,但是我必须重写Zend库的每个文件中的每一个包含。

include上框架的路径是正确的,我已经使用上面部分复制的bootstrap文件和我已经由项目设置并运行的伙伴给我的phpunit.xml配置了我的PHPUnit。

phpunit.xml看起来像这样(我不知道它是否与主题相关):

<phpunit bootstrap="./bootstrap.php" colors="true">
    <testsuite name="ApplicationTestSuite">
        <directory>./application/</directory>
        <directory>./library/</directory>
    </testsuite>
    <filter>
        <whitelist>
            <directory suffix=".php">../application</directory>
            <exclude>
                <directory suffix=".php">../application/modules/pal</directory>
                <directory suffix=".phtml">../application/views</directory>
                <file>../application/Bootstrap.php</file>
            </exclude>
        </whitelist>
    </filter>
    <logging>
        <log type="coverage-html" target="./log/coveragereport" charset="UTF-8"
             yui="true" highlight="false" lowUpperBound="35" highLowerBound="70"/>
    </logging>
</phpunit>

我还在选项工具上配置了Zend选项卡,注册了提供程序等。 那么我该如何解决这个问题,以便NetBeans能够检测到包含必须不仅与项目文件夹有关,而且与包含的库路径有关?

我还试图通过全局php包含和项目特定的(通过项目属性)包含库,但它们都不起作用......

提前谢谢

1 个答案:

答案 0 :(得分:0)

解决! 我忘了在php.ini文件中包含ZendFramework库的路径。

这就是我所拥有的:     的include_path = “.; C:\ XAMPP \ htdocs中\梨; C:\ XAMPP \ PHP \ PEAR”

这就是它工作所需要的:     的include_path = “.; C:\ XAMPP \ htdocs中\梨; C:\ XAMPP \ PHP \ PEAR; C:\ Zend的\ ZendFramework-1.11.11 \库”

问候!