Php Zend:如何防止includePath中出现双库?

Php Zend:如何防止includePath中出现双库?,php,zend-framework,include-path,zend-application,zend-app-bootstrap,Php,Zend Framework,Include Path,Zend Application,Zend App Bootstrap,public/index.php set_include_path(implode(PATH_SEPARATOR, array( dirname(dirname(__FILE__)) . '/library', get_include_path(), ))); configs/application.ini includePaths.library = APPLICATION_PATH "/../library" 结果 print get_include_path(); //

public/index.php

set_include_path(implode(PATH_SEPARATOR, array(
    dirname(dirname(__FILE__)) . '/library',
    get_include_path(),
)));
configs/application.ini

includePaths.library = APPLICATION_PATH "/../library"
结果

print get_include_path();
// prints %localpath%/application/../library:%localpath%/library
如果从ini中删除“includePaths.library”,则/zf(Zend_工具)将失败。如果删除index.php,引导将失败


如何正确防止此重复?

我认为您是对的,include路径不应该也在application.ini中,因此我将删除它。然后,为了让Zend工具正常工作,我认为您有两个选择:

  • 将您的设置更改为与此问题的顶部答案相同:(这将帮助ZF找到包含路径)。采埃孚的自动发现在这一过程中发生了一些变化,因此我不确定这种方法是否仍然有效

  • 或者,您可以设置一个环境变量,为Zend Tool提供库位置,详细信息如下:(请参阅标题为“其他设置注意事项”的部分)


  • 就我个人而言,我只想跳过Zend工具-我不认为它真的能让事情变得更简单。

    要测试这一点,你把
    print get\u include\u path()
    放在哪里?例如,您是否在其他任何地方设置了include路径(可能是php.ini?)IndexController::indexAction()。没有其他include路径操作我知道我可以通过set_include_path简化引导中的硬代码includePath,而不保存旧的includePath组件,但如果无法正确使用,为什么需要ini中的选项“includePaths”