作为一个phper,有时间的时候建议一定要去熟读并了解一遍 PHP PSR 标准规范,其中自动加载规范和原理在PSR-4。
接下来给你说你这个问题的解决办法:
例如新增一个 Utils/Array.php 类
解决办法一:
直接在 app
目录下新建 Utils
文件夹,将 Array.php
放进去,那么命名空间就是 namespace App\Utils;
,加载使用类的时候,就是 use App\Utils\Array
。
解决办法二:
如果想重新创建一个根命名空间,如在根目录下新建根命名空间。
- 在
composer.json
新增下面的代码{ "autoload": { "psr-4": { "Utils\\": "Utils/" } } }
- 在根目录新建
Utils
文件夹,将Array.php
放进去,那么命名空间就是namespace Utils;
,加载使用类的时候,就是use Utils\Array
。 - 执行
composer dump-autoload
可以在composer.json的psr-4
中添加一个新的命名空间,并指定目录,执行composer dump-autoload -o
即可。
"autoload": {
"psr-4": {
"Lib\\": "lib/"
}
}
例如以上代码,则是将app
目录定义为Lib\\
命名空间。
只要在目录下,添加文件并在Lib\\
命名空间下,就可以被引入。
大部分自定义类库可定义在 app
目录下,因它是 psr-4
标准加载的。如果不适合放在 app
目录下,使用 2楼的方法。关于 composer
自动加载的原理,参考 博客:Laravel Composer 自动加载原理
作为一个phper,有时间的时候建议一定要去熟读并了解一遍 PHP PSR 标准规范,其中自动加载规范和原理在PSR-4。
接下来给你说你这个问题的解决办法:
例如新增一个 Utils/Array.php 类
解决办法一:
直接在 app
目录下新建 Utils
文件夹,将 Array.php
放进去,那么命名空间就是 namespace App\Utils;
,加载使用类的时候,就是 use App\Utils\Array
。
解决办法二:
如果想重新创建一个根命名空间,如在根目录下新建根命名空间。
- 在
composer.json
新增下面的代码{ "autoload": { "psr-4": { "Utils\\": "Utils/" } } }
- 在根目录新建
Utils
文件夹,将Array.php
放进去,那么命名空间就是namespace Utils;
,加载使用类的时候,就是use Utils\Array
。 - 执行
composer dump-autoload
推荐文章: