我是ZEnd的新手,非常感谢任何帮助
我有各种承包商在我的网站上工作,事情变得混乱,在不同的位置有相同文件夹的多个副本。现在我要进去并试图清理一切。 FUN!我遇到的一个问题是Zend中的require_once语句没有找到他们正在寻找的文件。我必须进入并改变路径如下。假设这是Zend / Gdata / App / FeedEntryParent.php中找到的代码
不工作(找不到文件):
require_once 'Zend/Gdata/App/Extension/Updated.php';
似乎工作正常:
require_once '/home/paul13/paul13.com/includes/library/Zend/Gdata/App/Extension/Updated.php';
问题是大多数require_once语句都像第一个一样写。进入并手动编辑所有这些,是否有办法告诉require语句在指定的目录中查找? '/home/paul13/paul13.com/includes/library/'使用php.ini?我试着进入
include_path=".:/home/paulthetutor/paulthetutors.com/includes/library"
在php.ini中,但似乎没有解决问题。
答案 0 :(得分:1)
您的问题标题似乎与您发布的内容几乎没有关系。
我有各种承包商在我的网站上工作......没有找到文件
您是否向承包商付款以提供无效的代码?
问题显然是第一个路径
否 - 问题是您的包含路径未正确设置。如果你使用包含路径作为一种机制来避免输入大量的东西,那么你做错了。您的包含路径不应包含指向由其他人维护的目录树内的条目。如果没有非常具体和有效的目标,你也不应该改变这种结构。
作为临时解决方法,直到你将include / require语句修复到它们本来应该是什么,然后更改你的包含路径 - 在php.ini,httpd.conf,.htaccess中,通过auto - 在每个脚本的前面或顶部。
(顺便说一句,你的文件夹与目录混淆)
答案 1 :(得分:0)
您在问题中提到的文件夹是Zend库的一部分。您可以检查Zend Framework项目中是否有库文件夹以及它是否包含文件
'的Zend / GDATA /应用/扩展/ Updated.php'
要包含整个ZF库,请在public / index.php或Bootstrap.php文件中使用以下代码。
// Define path to application directory
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') : 'production'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
是的,有选择地逐个删除require语句和本地复制的库文件版本(在确保它们没有更新的代码之后)。
您可能需要检查默认的Zend Framework应用程序结构here以比较文件夹结构。