解决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+MYSQL 出现乱码的解决方法
Aug 08 PHP
php 数组二分法查找函数代码
Feb 16 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
php中的boolean(布尔)类型详解
Oct 28 PHP
php更新mysql后获取改变行数的方法
Dec 25 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
php准确获取文件MIME类型的方法
Jun 17 PHP
Yii2中cookie用法示例分析
Jul 18 PHP
thinkphp分页实现效果
Oct 13 PHP
php 截取utf-8格式的字符串实例代码
Oct 30 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
Feb 20 PHP
PHP生成随机字符串实例代码(字母+数字)
Sep 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
我的论坛源代码(八)
2006/10/09 PHP
php使用正则表达式进行字符串搜索的方法
2015/03/23 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
Laravel中任务调度console使用方法小结
2017/05/07 PHP
PHP命名空间定义与用法实例分析
2019/08/14 PHP
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
js与css实现弹出层覆盖整个页面的方法
2014/12/13 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
js仿微信抢红包功能
2020/09/25 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
vue相关配置文件详解及多环境配置详细步骤
2020/05/19 Javascript
讲解Python中for循环下的索引变量的作用域
2015/04/15 Python
Python语法快速入门指南
2015/10/12 Python
浅谈Python中函数的参数传递
2016/06/21 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
Python实现自动发送邮件功能
2021/03/02 Python
SVM基本概念及Python实现代码
2017/12/27 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
DRF框架API版本管理实现方法解析
2020/08/21 Python
保时捷设计:Porsche Design
2019/03/30 全球购物
世嘉游戏英国官方商店:SEGA Shop UK
2019/09/20 全球购物
公司营业员的工作总结自我评价
2013/10/05 职场文书
技术副厂长岗位职责
2013/12/26 职场文书
幼儿园教师备课制度
2014/01/12 职场文书
爽歪歪广告词
2014/03/20 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript
react如何快速设置文件路径别名
2021/04/28 Javascript
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android