PHP文件包含

时间:2014-07-14 15:47:16

标签: php composer-php include-path

我已经在论坛上搜索过了,但是这些解决方案似乎都没有帮助我。

基本上我刚刚使用composer安装并创建了一个包。我需要自动加载类,听起来非常标准。

我按照所有说明操作,并将这行代码添加到我的脚本中:

require_once 'vendor/autoload.php';

供应商文件夹位于我服务器的根文件夹中,此处:

/root/vendor/autoload.php

所以,我添加了

:/root

到我的PHP ini文件,以便PHP在查找包含时搜索根文件夹。我认为这应该有效但不是:(

我的PHP ini文件现在看起来像这样:

.:/usr/lib/php:/usr/local/lib/php:/root

我得到的错误信息是:

[14-Jul-2014 16:46:29 Europe/London] PHP Fatal error:  require_once(): Failed opening required 'vendor/autoload.php' (include_path='.:/usr/lib/php:/usr/local/lib/php:/root') in /home/owned/public_html/trythis/ow_plugins/oftokbox/bol/service.php on line 38

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您隐含地声明您正在将Composer用于项目。通过这样做,您必须在某处拥有composer.json文件。 Composer将直接在包含此文件的文件夹中创建供应商文件夹。

因此,如果您在包含index.php的文件夹中也有文件composer.json,则要包含自动加载器,您将使用require 'vendor/autoload.php';

但是,如果您遵循某些安全准则并拥有包含公共文件的专用文件夹,则该文件将被称为public/index.php,并且要使此文件到达自动加载器,相对路径将为{{1 }}

Composer无法提供一个指令适合所有方向,因为它取决于您拥有的文件夹结构。但是包括composer autoloader在内的任务与包含相对路径的任何其他文件的任务相同。