解决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 相关文章推荐
使用 php4 加速 web 传输
Oct 09 PHP
php 什么是PEAR?(第三篇)
Mar 19 PHP
php下删除一篇文章生成的多个静态页面
Aug 08 PHP
PHP设计模式之迭代器模式的深入解析
Jun 13 PHP
php将mysql数据库整库导出生成sql文件的具体实现
Jan 08 PHP
zf框架的数据库追踪器使用示例
Mar 13 PHP
PHP 9 大缓存技术总结
Sep 17 PHP
PHP大神的十大优良习惯
Sep 14 PHP
Laravel模型事件的实现原理详解
Mar 14 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
Jul 12 PHP
PHP判断一个变量是否为整数、正整数的方法示例
Sep 11 PHP
解决laravel5.4下的group by报错的问题
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通过cookies获取远程网页的指定代码
2013/06/25 PHP
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
PHP生成不重复随机数的方法汇总
2014/11/19 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
PHP常用处理静态操作类
2015/04/03 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
移动端日期插件Mobiscroll.js使用详解
2016/12/19 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
vue项目tween方法实现返回顶部的示例代码
2018/03/02 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
python 正则式 概述及常用字符
2009/05/07 Python
Python基于numpy灵活定义神经网络结构的方法
2017/08/19 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
运用Python的webbrowser实现定时打开特定网页
2019/02/21 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
2019/05/10 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书
办公室主任岗位竞聘书
2015/09/15 职场文书
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript