解决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 相关文章推荐
提取HTML标签
Oct 09 PHP
一个php作的文本留言本的例子(五)
Oct 09 PHP
elgg 获取文件图标地址的方法
Mar 20 PHP
php快速url重写 更新版[需php 5.30以上]
Apr 20 PHP
php的ajax框架xajax入门与试用介绍
Dec 19 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
Dec 25 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
Apr 24 PHP
利用谷歌 Translate API制作自己的翻译脚本
Jun 04 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
ecshop适应在PHP7的修改方法解决报错的实现
Nov 01 PHP
Laravel timestamps 设置为unix时间戳的方法
Oct 11 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防止SQL注入详解及防范
2013/11/12 PHP
PHP中的socket_read和socket_recv区别详解
2015/02/09 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
jquery中animate动画积累的解决方法
2013/10/05 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
javascript跨域原因以及解决方案分享
2015/04/08 Javascript
javascript模块化简单解析
2016/04/07 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
js+css3制作时钟特效
2016/10/16 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
Vue+webpack+Element 兼容问题总结(小结)
2018/08/16 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
python实现对一个完整url进行分割的方法
2015/04/29 Python
详解Django通用视图中的函数包装
2015/07/21 Python
python中的变量如何开辟内存
2018/06/26 Python
Django 多语言教程的实现(i18n)
2018/07/07 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
python pygame实现方向键控制小球
2019/05/17 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
Ibatis如何调用存储过程
2015/05/15 面试题
教师应聘个人求职信
2013/12/10 职场文书
小学班主任寄语大全
2014/04/04 职场文书
大学生心理活动总结
2014/07/04 职场文书
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
走群众路线剖析材料
2014/10/09 职场文书
2014年人事部工作总结
2014/12/03 职场文书
工会积极分子个人总结
2015/03/03 职场文书
支教个人总结
2015/03/04 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电