解决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 相关文章推荐
中英文字符串翻转函数
Dec 09 PHP
PHP 数组入门教程小结
May 20 PHP
php实现的遍历文件夹下所有文件,编辑删除
Jan 05 PHP
调试一段PHP程序时遇到的三个问题
Jan 17 PHP
php 无法加载mcrypt.dll的解决办法
Apr 03 PHP
PHP遍历文件夹与文件类及处理类用法实例
Sep 23 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
Oct 22 PHP
Yii2中关联查询简单用法示例
Aug 10 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
PHP简单读取xml文件的方法示例
Apr 20 PHP
PHP的mysqli_select_db()函数讲解
Jan 23 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 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函数,php爱好者站推荐
2007/03/19 PHP
php auth_http类库进行身份效验
2009/03/19 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
php去除html标记的原生函数详解
2015/01/27 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
JavaScript中的Document文档对象
2008/01/16 Javascript
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
通过js来制作复选框的全选和不选效果
2014/05/22 Javascript
javascript判断元素存在和判断元素存在于实时的dom中的方法
2017/01/17 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
Python File(文件) 方法整理
2019/02/18 Python
5款Python程序员高频使用开发工具推荐
2019/04/10 Python
python pandas cumsum求累计次数的用法
2019/07/29 Python
python自动生成sql语句的脚本
2021/02/24 Python
美国在线工具商店:Acme Tools
2018/06/26 全球购物
Lookfantastic阿联酋官网:英国知名美妆护肤购物网站
2020/05/26 全球购物
客服主管岗位职责
2013/12/13 职场文书
迟到检讨书800字
2014/01/13 职场文书
综合办公室主任岗位职责
2014/04/13 职场文书
三严三实学习心得体会
2014/10/13 职场文书
遗嘱继承权公证书
2015/01/26 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
微信早安问候语
2015/11/10 职场文书
2016年少先队活动总结
2016/04/06 职场文书