作为一个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
关于 LearnKu
推荐文章: