问题描述
了一个第三方验证码类Code.class.PHP
个类设置命名空间,那么需要在使用时用require引入这个文件,引入后在new Code()
时会报Class 'App\Http\Controllers\Admin\Code' not found
,这样会在根命名空间下找Code类就可以正常使用。
好奇心下给Code类添加了个命名空间namespace resources\org\code
;,发现在使用时use resources\org\code\Code;
,依然报错找不到这个类。
解决过程
通过修改命名空间,改变类文件存放位置,都不能解决这个错误,百度后发现应该自定义类的加载问题,即命名空间使用正确,但是laravel没有加载这个类文件。最后在csdn大神博客发现解决办法。
在composer.json
的autoload
内的classmap
项新增类包,
"autoload": {
"classmap": [
"database",
"resources/org/code" //添加自己的命名空间
],
"psr-4": {
"App\\": "app/"
}
},
完成之后还需要在命令行使用composer
命令
composer dump-autoload
做完这些再回到项目中,在使用Code类的文件中use resources\org\code\Code
;就可以正确的new Code()
了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。