解决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调用数据库的存贮过程!
Oct 09 PHP
function.inc.php超越php
Dec 09 PHP
php 服务器调试 Zend Debugger 的安装教程
Sep 25 PHP
PHP入门学习笔记之一
Oct 12 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
Jun 09 PHP
简单的php文件上传(实例)
Oct 27 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
Sep 12 PHP
php中cookie实现二级域名可访问操作的方法
Nov 11 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
Jul 29 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
Nov 25 PHP
详解php 使用Callable Closure强制指定回调类型
Oct 26 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抽象类使用要点与注意事项分析
2015/02/09 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
php实现数据库的增删改查
2017/02/26 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
详解javascript遍历方式
2015/11/11 Javascript
Underscore源码分析
2015/12/30 Javascript
js实现StringBuffer的简单实例
2016/09/02 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
详解node.js中的npm和webpack配置方法
2018/01/21 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
JS中FileReader类实现文件上传及时预览功能
2020/03/27 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
django实现分页的方法
2015/05/26 Python
Python实现将数据框数据写入mongodb及mysql数据库的方法
2018/04/02 Python
实例讲解python中的协程
2018/10/08 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
python3.4爬虫demo
2019/01/22 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
详解如何使用rem或viewport进行移动端适配
2020/08/14 HTML / CSS
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
小学生学习感言
2014/03/10 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python
JS代码编译器Monaco使用方法
2021/06/11 Javascript
Pandas搭配lambda组合使用详解
2022/01/22 Python