解决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 相关文章推荐
快速配置PHPMyAdmin方法
Jun 05 PHP
PHP 截取字符串 分别适合GB2312和UTF8编码情况
Feb 12 PHP
PHP迭代器的内部执行过程详解
Nov 12 PHP
php设置允许大文件上传示例代码
Mar 10 PHP
纯PHP生成的一个树叶图片画图例子
Apr 16 PHP
php格式化日期实例分析
Nov 12 PHP
详解 PHP加密解密字符串函数附源码下载
Dec 18 PHP
php插入含有特殊符号数据的处理方法
Nov 24 PHP
php常用数组函数实例小结
Dec 29 PHP
php实现微信扫码支付
Mar 26 PHP
php传值方式和ajax的验证功能
Mar 27 PHP
laravel高级的Join语法详解以及使用Join多个条件
Oct 16 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之第二天
2006/10/09 PHP
基于mysql的bbs设计(四)
2006/10/09 PHP
PHP截取汉字乱码问题解决方法mb_substr函数的应用
2008/03/30 PHP
解析PHP可变函数的经典用法
2013/06/20 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
2010/12/03 Javascript
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
js手机号批量滚动抽奖实现代码
2020/04/17 Javascript
探索webpack模块及webpack3新特性
2017/09/18 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
简单介绍Python中的decode()方法的使用
2015/05/18 Python
Python中subprocess模块用法实例详解
2015/05/20 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
python实现按行分割文件
2019/07/22 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
2019/08/13 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
什么叫做SQL注入,如何防止
2016/10/04 面试题
青年创业培训欢迎词
2014/01/08 职场文书
银行竞聘演讲稿范文
2014/04/23 职场文书
大学优秀班集体申报材料
2014/05/23 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
详解python的内存分配机制
2021/05/10 Python
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫
Nginx如何获取自定义请求header头和URL参数详解
2022/07/23 Servers
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL