![](/img/trans.png)
[英]PHP Class using namespaces causes problems with my code that doesn't use namespaces. Why?
[英]PHP Namespaces: why isn't my class found?
我已經閱讀了一些有關PHP中的名稱空間以及compser如何處理名稱空間自動加載的知識。 我無法弄清楚為什么找不到我的班級。 有人可以幫忙嗎?
我正在使用Laravel,以下是相關的位:
composer.json
相關內容:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/libraries"
],
"psr-0": {
"Facebook\\":"vendor/facebook/php-sdk-v4/src/"
}
}
做一個composer dump-autoload
給我在vendor/composer/autoload_namespaces.php
的以下行:
'Facebook\\\\' => array($vendorDir . '/facebook/php-sdk-v4/src'),
我的供應商文件夾結構為:Facebook是:
vendor
|__ facebook
|__ php-sdk-v4
|__ src
|__ Facebook
|__ ..
|__ Facebook.php
|__ ..
嘗試$facebook = new Facebook($config)
給了我
Symfony \\組件\\調試\\異常\\ FatalErrorException(E_UNKNOWN)未找到類'Facebook'
我究竟做錯了什么?!
供應商文件夾中的所有內容均應自動加載,因此沒有必要使用這些行
"psr-0": {
"Facebook\\":"vendor/facebook/php-sdk-v4/src/"
}
您是否已將這些行添加到composer.json並以通常的composer方式安裝了庫?
"require": {
"facebook/php-sdk-v4": "~5.0"
}
Facebook
是該類的名稱,但Facebook
似乎也是您的名稱空間的名稱。
在這種情況下,您可以像這樣實例化它:
$facebook = new \Facebook\Facebook($config);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.