解决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的ob_start() 控制您的浏览器cache
Aug 03 PHP
header中Content-Disposition的作用与使用方法
Jun 13 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
Aug 01 PHP
php ci框架验证码实例分析
Jun 26 PHP
smarty模板中拼接字符串的方法
Feb 14 PHP
ThinkPHP模版引擎之变量输出详解
Dec 05 PHP
PHP实现自动对图片进行滚动显示的方法
Mar 12 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
php自动载入类用法实例分析
Jun 24 PHP
Laravel 批量更新多条数据的示例
Nov 27 PHP
PHP支付宝当面付2.0代码
Dec 21 PHP
PHP+Apache实现二级域名之间共享cookie的方法
Jul 24 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
模仿OSO的论坛(一)
2006/10/09 PHP
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
php下统计用户在线时间的一种尝试
2010/08/26 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
2014/07/28 PHP
PHP时间和日期函数详解
2015/05/08 PHP
php视频拍照上传头像功能实现代码分享
2015/10/08 PHP
PHP连接MYSQL数据库实例代码
2016/01/20 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
python计算一个序列的平均值的方法
2015/07/11 Python
浅析Python的Django框架中的Memcached
2015/07/23 Python
Python实现简单登录验证
2016/04/13 Python
总结用Pdb库调试Python的方式及常用的命令
2016/08/18 Python
Django1.7+python 2.78+pycharm配置mysql数据库
2016/10/09 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
如何基于python生成list的所有的子集
2019/11/11 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
驾驶员培训方案
2014/05/01 职场文书
骨干教师个人总结
2015/02/11 职场文书
网络销售员岗位职责
2015/04/11 职场文书
幽默导游词开场白
2015/05/29 职场文书
MySQL 使用索引扫描进行排序
2021/06/20 MySQL
python代码实现备忘录案例讲解
2021/07/26 Python
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python