我已经在论坛上搜索过了,但是这些解决方案似乎都没有帮助我。
基本上我刚刚使用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
有什么想法吗?
答案 0 :(得分:1)
您隐含地声明您正在将Composer用于项目。通过这样做,您必须在某处拥有composer.json
文件。 Composer将直接在包含此文件的文件夹中创建供应商文件夹。
因此,如果您在包含index.php
的文件夹中也有文件composer.json
,则要包含自动加载器,您将使用require 'vendor/autoload.php';
。
但是,如果您遵循某些安全准则并拥有包含公共文件的专用文件夹,则该文件将被称为public/index.php
,并且要使此文件到达自动加载器,相对路径将为{{1 }}
Composer无法提供一个指令适合所有方向,因为它取决于您拥有的文件夹结构。但是包括composer autoloader在内的任务与包含相对路径的任何其他文件的任务相同。