[英]Composer autoload - How to fetch classes, traits, interfaces from different folders?
如何使用composer自動加載功能從不同的文件夾中獲取類,特征,接口?
其中一些我使用名稱空間,例如,
控制器/ Foo.php,
namespace MyNamespace;
class Foo
{
public $message = 'hello Foo';
}
模型/ Boo.php
namespace MyNamespace;
class Boo
{
public $message = 'hello Boo';
}
index.php文件,
// Composer.
require 'vendor/autoload.php';
use \MyNamespace\Foo;
$Foo = new Foo();
var_dump($Foo);
錯誤,
致命錯誤:在C:中找不到類'MyNamespace \\ Foo'
composer.json,
{
"autoload": {
"psr-0": {
"": "ext/",
"": "controller/",
"": "model/"
}
}
}
我在許多不同的文件夾中有很多類(可能會擴展),所以當我在新文件夾中有新類時,有什么方法可以不重新安裝 composer autoload嗎?
您必須標准化名稱空間和文件夾結構。 如果在不同的文件夾中具有相同的名稱空間,則很難創建一個簡單的邏輯來自動加載它們。 嘗試在名稱空間中使用另一個細分,例如:
namespace MyNamespace\Controller;
class Foo
{
public $message = 'hello Foo';
}
和:
namespace MyNamespace\Model;
class Boo
{
public $message = 'hello Boo';
}
並在您的composer.json中:
{
//..
"autoload": {
"psr-4": {
"MyNamespace\\Model\\": "/path/to/model/folder/",
"MyNamespace\\Controller\\": "/path/to/controller/folder/"
}
}
}
設置好之后,請致電:
composer dump-autoload
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.