我有這樣的結構,我的應用程序,Composer自動加載psr 4通配符擴展用於匹配所有模塊?
myapp/
config/ (config and setup)
module/ (tons of modules!)
Article/ (one of the modules)
source/ (<----- note that all php psr4 classes are stored in this folder)
Article
Model/
ArticleModel.php
ArticlesModel.php
Controller/
View/
Book/ (one of the modules)
....(the structure is the same as Article's)
public/ (web site doc root)
vendor/
composer/
...(other packages)
,這是我composer.json,
{
"require": {
"slim/slim": "~2.0",
"slim/views": "0.1.*"
},
"autoload": {
"psr-4": {
"Foo\\": [
"module/*/source/"
]
},
"psr-0": {
"": "library/"
}
}
}
正如你可以看到,我有這個"module/*/source/"
在以.json。我這樣做的原因是因爲我想避免編寫每個模塊,因爲它將成爲長列表。當我有新的模塊時它也不靈活,那麼我必須對.json進行更改。
但是"module/*/source/"
不起作用。那麼我可以在這個.json中使用正則表達式或其他東西,這樣它就足夠「聰明」,可以拾取所有模塊了?如,
"module/Artcle/source/"
"module/Book/source/"
"module/Contact/source/"
"module/Admin/Article/source/"
"module/Admin/Book/source/"
"module/Admin/Contact/source/"
....
這可能嗎?
感謝您的回答。我希望Composer在自動載入定義中有通配符擴展,因爲它可以在'require'中做到這一點,例如''slim/views「:」0.1。*「'但不能' 「自動加載」'。 – laukok
在Github上爲它創建一個問題。 – Sven
只是做到了。謝謝。 – laukok