解决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 相关文章推荐
memcached 和 mysql 主从环境下php开发代码详解
May 16 PHP
php中addslashes函数与sql防注入
Nov 17 PHP
Zend Framework校验器Zend_Validate用法详解
Dec 09 PHP
简单实现PHP留言板功能
Dec 21 PHP
php正则表达式基本知识与应用详解【经典教程】
Apr 17 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
May 23 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
Jun 08 PHP
浅谈Laravel队列实现原理解决问题记录
Aug 19 PHP
Yii框架连表查询操作示例
Sep 06 PHP
Laravel基础-关于引入公共文件的两种方式
Oct 18 PHP
php pdo连接数据库操作示例
Nov 18 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 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获取数组中重复数据的两种方法
2013/06/28 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
PHP中使用curl伪造IP的简单方法
2015/08/07 PHP
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
Laravel配置全局公共函数的方法步骤
2019/05/09 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
JS选项卡动态替换banner图片路径的方法
2015/05/11 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
2016/12/26 Javascript
js实现音频控制进度条功能
2017/04/01 Javascript
vue深入解析之render function code详解
2017/07/18 Javascript
浅谈Vuex的状态管理(全家桶)
2017/11/04 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
Python Websocket服务端通信的使用示例
2020/02/25 Python
Python日志logging模块功能与用法详解
2020/04/09 Python
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
名词解释型面试题(主要是网络)
2013/12/27 面试题
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
移动通信专业自荐信范文
2013/11/12 职场文书
2014年高三毕业生自我评价
2014/01/11 职场文书
校园十佳歌手策划书
2014/01/22 职场文书
员工入职担保书范文
2014/04/01 职场文书
质量保证书格式模板
2015/02/27 职场文书
2015年青年志愿者工作总结
2015/05/20 职场文书
MySQL update set 和 and的区别
2021/05/08 MySQL
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python