解决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函数,php爱好者站推荐
Mar 19 PHP
php模板之Phpbean的目录结构
Jan 10 PHP
兼容性最强的PHP生成缩略图的函数代码(修改版)
Jan 18 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 PHP
PHP数学运算函数大汇总(经典值得收藏)
Apr 01 PHP
ThinkPHP中limit()使用方法详解
Apr 19 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
Jul 09 PHP
PHP读取Excel类文件
May 15 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
实例分析PHP将字符串转换成数字的方法
Jan 27 PHP
php中对象引用和复制实例分析
Aug 14 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
缅甸的咖啡简史
2021/03/04 咖啡文化
php实现监听事件
2013/11/06 PHP
php实现对象克隆的方法
2015/06/20 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
JavaScript 学习笔记(六)
2009/12/31 Javascript
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
使用jQuery时Form表单元素ID和name命名大忌
2014/03/06 Javascript
jQuery中next方法用法实例
2015/04/24 Javascript
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
Python使用asyncio包处理并发详解
2017/09/09 Python
Python决策树分类算法学习
2017/12/22 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
python 命名规范知识点汇总
2020/02/14 Python
520使用Python实现“我爱你”表白
2020/05/20 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
html5使用canvas画三角形
2014/12/15 HTML / CSS
品管员岗位职责
2013/11/10 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
2014年幼儿园班级工作总结
2014/12/17 职场文书
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL