2014-07-14 524 views
1

我已經搜索論壇,但沒有任何解決方案似乎幫助我。PHP文件包括

基本上我剛剛安裝並使用作曲家創建了一個包。我需要自動加載類,聽起來很標準。

我照着所有的說明,並增加這行代碼給我的腳本:

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

您的網絡服務器不會擁有'/ root'權限。你爲什麼要把PHP文件放在那裏? – AbraCadaver

+1

你把文件放在'/ root'裏?!?!?聽起來像一個壞主意......運行Web服務器的用戶是否可以訪問'/ root'? –

+0

這就是作曲家安裝供應商文件夾的地方 –

回答

1

您隱式聲明您正在使用Composer作爲項目,因此您必須在某個地方使用composer.json文件,Composer將直接在文件夾中創建供應商文件夾包含這個文件。

因此,如果您在包含composer.json的文件夾中也有文件index.php,要包含自動裝載器,您可以使用require 'vendor/autoload.php';

如果您遵循一些安全準則並且有一個包含公共文件的專用文件夾,則該文件將被稱爲public/index.php,並且該文件要到達自動裝載器,相對路徑將爲require '../vendor/autoload.php';

作曲家不能給出一個指示所有人的方向,因爲它取決於你擁有的文件夾結構。但是包括composer自動加載器在內的任務與包含任何具有相對路徑的其他文件的任務完全相同。