解决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图片的裁剪与缩放生成符合需求的缩略图
Jan 11 PHP
php防注入,表单提交值转义的实现详解
Jun 10 PHP
探讨php中防止SQL注入最好的方法是什么
Jun 10 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
QQ互联一键登录审核不通过的解决方案
Sep 10 PHP
php中$_GET与$_POST过滤sql注入的方法
Nov 03 PHP
CI框架Session.php源码分析
Nov 03 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
Sep 25 PHP
PHP实现的数独求解问题示例
Apr 18 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
基于laravel belongsTo使用详解
Oct 18 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字符串处理的10个简单方法
2010/06/30 PHP
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
PHP面向对象程序设计之对象生成方法详解
2016/12/02 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
2019/05/13 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
jQuery实现三级菜单的代码
2016/05/09 Javascript
Javascript 5种方法实现过滤删除前后所有空格
2016/06/22 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
2018/04/14 Javascript
vue2.0父子组件间传递数据的方法
2018/08/16 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
Node 代理访问的实现
2019/09/19 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
python类中super()和__init__()的区别
2016/10/18 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
连接pandas以及数组转pandas的方法
2019/06/28 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
python自动发微信监控报警
2019/09/06 Python
python Tensor和Array对比分析
2020/01/08 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
毕业生求职简历中的自我评价
2013/10/18 职场文书
诉讼授权委托书
2014/10/15 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python