解决Laravel自定义类引入和命名空间的问题


Posted in PHP onOctober 15, 2019

1.问题描述

在Laravel中引入了一个第三方验证码类Code.class.php,在使用的时候发现如果不给这个类设置命名空间,那么需要在使用时用require引入这个文件,引入后在

new Code()时会报Class 'App\Http\Controllers\Admin\Code' not found,即找不这个类的错误,发现系统在当前文件的命名空间去找这个类。所以需要在new时类名前加\,即new \Code(),这样会在根命名空间下找Code类就可以正常使用。

好奇心下给Code类添加了个命名空间namespace resources\org\code;,发现在使用时use resources\org\code\Code;,依然报错找不到这个类。

2.解决过程

通过修改命名空间,改变类文件存放位置,都不能解决这个错误,百度后发现应该自定义类的加载问题,即命名空间使用正确,但是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()了。

3.总结

在自定义类不使用命名空间时可以直接require类文件进行使用,但在new \Code时要加上\指明根命名空间。

当使用命名空间时要进行配置,告诉系统进行自动加载自定义类包,然后可以使用use。

另外经过测试发现当使用命名空间时仅使用require仍然报错,还要指明命名空间才可以。但使用了use可以省去require。

以上这篇解决Laravel自定义类引入和命名空间的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP数据流应用的一个简单实例
Sep 14 PHP
php常用Output和ptions/Info函数集介绍
Jun 19 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 PHP
PHP比你想象的好得多
Nov 27 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
Apr 08 PHP
ThinkPHP框架安全实现分析
Mar 14 PHP
php生成酷炫的四个字符验证码
Apr 22 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
Oct 17 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
Aug 21 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 PHP
laravel 如何实现引入自己的函数或类库
Oct 15 #PHP
Laravel 类和接口注入相关的代码
Oct 15 #PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 #PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
Oct 15 #PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 #PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
Oct 15 #PHP
解决laravel 表单提交-POST 异常的问题
Oct 15 #PHP
You might like
PHP 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
nodejs中实现sleep功能实例
2015/03/24 NodeJs
JQuery导航菜单选择特效
2016/04/11 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
老生常谈原生JS执行环境与作用域
2016/11/22 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
67 个节约开发时间的前端开发者的工具、库和资源
2017/09/12 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
Vue插件从封装到发布的完整步骤记录
2019/02/28 Javascript
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
Django的数据模型访问多对多键值的方法
2015/07/21 Python
python迭代器与生成器详解
2016/03/10 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
让python 3支持mysqldb的解决方法
2017/02/14 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
详解Python安装scrapy的正确姿势
2018/06/26 Python
Python3爬虫学习入门教程
2018/12/11 Python
基于python实现高速视频传输程序
2019/05/05 Python
python redis 批量设置过期key过程解析
2019/11/26 Python
python 定义类时,实现内部方法的互相调用
2019/12/25 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
JPA的特点
2014/10/25 面试题
大学新学期计划书
2014/04/28 职场文书
法制宣传教育方案
2014/05/09 职场文书
技术负责人任命书
2014/06/05 职场文书
党支部活动策划方案
2014/08/18 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
自查自纠工作总结
2014/10/15 职场文书
2019入党申请书格式
2019/06/25 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书