spatie\permission\models\role 是如何映射到 vendor/spatie/laravel-380玩彩网官网入口
经常,我们都会使用use引入其他地方的类文件。但是有时use 后的命令空间结构和实际目录结构并不一致,这是怎么回事? 比如在config/administrator/roles.php中spatie\permission\models\role 是如何映射到 vendor/spatie/laravel-permission/src/models/role.php?
- 这个通过ide可以直接跳转。
- 但是,原理是 ,结合和
vendor/spatie/laravel-permission/composer.json
中的如下代码:"autoload": { "psr-4": { "spatie\\permission\\": "src" }, }
- 可以看出,namespace 为
spatie\permission\
就相当于src
,那么spatie\permission\models\role
就是src/models/role.php
,由于这个是相对路径,加上composer.json的base directory
即vendor/spatie/laravel-permission
, 那么最后就拼接为vendor/spatie/laravel-permission/src/models/role.php
。 - 实际上,这个映射关系在
vendor/composer/autoload_psr4.php
中也可以找到:'spatie\\permission\\' => array($vendordir . '/spatie/laravel-permission/src'),
- 分析完毕!
日拱一卒
本帖已被设为精华帖!
本帖由系统于 5年前 自动加精