thinkphp5关于动态生成二维码类库总结;
遇到的最大问题如下;我想大部分人也碰到过,所有觉得有必要总结下;
thinkphp5提示找不到Qrcode类,可是自己明明都放置到了,vendor 目录下面,怎么还是找不到了?是不是路径错了?
上面试根据thinkphp手册上说的加了使用命名空间,还是报错,于是我右试了下以下方式还是报错?我当时百度了看看大多数都是tp3.2的写法,千篇一律,所以觉得有必要搞定这样的问题。
这次我连vendor都加上了还是报错,用官方提供的助手函数 vendor()也报错,QRcode的类代码如下;
这些都是存在的,后来我试试了用php 系统函数来获取路径看看是不是路径问题;但是还是报错;如下;
正常情况下;include_once函数如果路径错了会提示的,如下;
这个提示是路径错误问题;我的项目是在public下面,所以就防止了vendor目录下;PHP函数路径助手函数,各种引入都报类不存在,
解决方案如下;
1,Vendor 是用来加载第三方类库的是不假,但是只针对composer类有效;官方手册说的很明白如下;
那怎么办了,有的人会说,在新建一个文件目录,答案也是可以的,由于官方考虑到extend类库加载,如下;
说的也很清楚;可自定义;如下所示;我放置了在extend目录下,问题解决了,如下;
这个是我的文件目录结构如下;
最终效果如下;
总结;1.用框架时一定要遵循他们的约定来用,除非你有能重构。
2,由于在Qrcode官方类下载的不是很完整,大都数都是没有 命名空间规范,对类,路径认识不够所造成的,官方提供的 类没有 “命名空间 ”需要自己加已改造,
如果不想加可以防止在common目录下做公共函数用,如下;
3,报找不到类时一定不要急,首先看有没有命名空间,有没类的规范,有没有路径错误,官方手册细节很重要,官方手册细节很重要,官方手册细节很重要,官方提供的助手
类函数也没有错,也可重新 再定义 命名空间,加类,tp3.2,比tp5很规范,在tp3,2下能加载但是在tp5上就不一定能够用上,报错很正常。
4,一定要注意自己引入的类,是否有命名空间等,,,所有路径,也要注意,在次奉上各类插件类库,以下是我的github地址;https://github.com/Hu-Right/thinkphp3.2-
后期会有各类总结。