laravel - laravel 中的作曲家自动加载
问题描述
查看 laravel 项目中的 composer.json 文件,我可以在下面找到
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
]
},
据我所知,App\:"app/" 表示名称空间以 App 开头,其源文件位于 app/ 目录下,并且遵循 psr-4。
但是,在供应商目录下有大量的包,例如以 Illuminate 开头的包。它们是在 psr-4 下还是在 classmap 下?为什么它们没有在 composer.json 文件中声明?
解决方案
每个包都应该负责自动加载
像其他人一样将 Laravel视为一个单独的包
composer.json
您可以分别在每个包中找到供应商文件
这是目录结构
<web-root>
|--------src/
| |--------App/
| |
| |--------Test/
|
|---------library/
|
|---------vendor/
| |
| |---------composer/
| | |---------autoload_psr4.php
| |
| |----------autoload.php
|
|-----------composer.json
|
你可以看看我对这个自动加载类图的另一个答案
推荐阅读
- python-3.x - 如何在 aws lambda 的 tmp 目录中使用 pandas 读取 csv
- node.js - 验证用户身份后通过 id 传递整个对象
- selenium - 限制 selenium webdriver 范围时的困惑
- javascript - 如何加载 JSON 并拆分响应字符串?
- python-3.x - 这个大小运算符在函数调用中做了什么?
- javascript - Javascript / jQuery 以编程方式反转正则表达式
- java - 如何更改从堆栈中弹出的 ArrayList 类型从对象到链表?
- regex - 正则表达式一致分组
- python - 对字典中的嵌套列表进行排序
- javascript - 部署到heroku服务器