一般刚接触tp5.1的,会很不适应,虽然版本号只是比5.0多了0.1,但是差别挺大,废弃了不少方法,官方的教程又很简单,很多东西没说全,在此鄙视一下框架作者,最起码体谅一下小白嘛,搞了好多天才把5.1使用vendor里面引入第三方包的问题搞好,惨啊,在此分享,让后来的小白别走太多弯路。

一、在thinkPHP 5.1.X新版取消了Loader::import方法以及import和vendor助手函数,推荐全面采用命名空间方式的类以及自动加载机制,如果必须使用请直接改为php内置的include或者require语法。(抱怨一下,这种问题要在官方文档里面说明一下嘛,鄙视作者,整5.1的时候这些方法挨个试了一遍,又是搜又是看教程结果全部卵用,无奈。)

原来的import("Vendor.Classes.PHPExcel.IOFactory");或Vendor(‘phpoffice.phpexcel.Classes.PHPExcel.IOFactory‘);方法已经不再使用。

二,在thinkPHP 5.1.X中的处理方法,必须使用composer方式安装第三方模块。否则在vendor目录下的内容无法自动加载。也就是到了这一版必须用Composer,方法加载去掉了,其实这样也好,比较靠拢主流框架,比如laravel,如果用好TP5.1在转向laravel很容易,而且用工具管理包,也符合现在的开发潮流,像node各种工具包管理,在此虽然刚接触很不爽,但是支持吧。

怎么安装Composer 就不说了,教程一堆,反正不成功再搜再搞,就差不多了。

三,是否能够成功在TP5.1中引入第三方包,命名空间太重要了,必须明白到底是咋回事,单单明白namespace还不行,use的用法和规则也缺一不可,我当时就只了解了namespace,什么大空间,子空间,依然不成功,是因为use用的不对。

四,说了require_once加namespace方式,接下来说namespace和use 方式。

第三方包

namespace gmars\rbac;usegmars\nestedsets\NestedSets;usethink\Db;use think\Exception;classRbac

{/**

-------------------------下面自己写的类,上面是rbac包类----------------------------------------------------

namespace app\index\Controller;use gmars\rbac; //use的是第三方包的namespace名字

class Login extendsController

{public functionlogin(){//实例化

$rbacObj=new rbac\Rbac(); //就是use的名字最后一个字符rbac 加上你要实例化的类名。

五,这里还要说一下composer,如果你项目有报错,找不到包什么的可以去看项目跟目录里面的composer.json这里是你导入第三方类的表,看看有没有这个包在里面

"require": {"php": ">=5.6.0","topthink/framework": "5.1.*","gmars/tp5-rbac":"dev-master","gmars/tp5-nestedsets": "dev-master","topthink/think-captcha": "^2.0","topthink/think-migration":"^1.0","phpmailer/phpmailer": "^6.0"},

在此也就是说在TP5.1中,导入第三方包在vendor文件夹中,先用compose require 加包成功,再先use对,在new,才能成功,在前面不声明use是不能加载第三方包的,还有一路就是进vendor文件夹中找到你加包的文件夹,里面src里面php文件.拷贝到extend文件下新建文件夹中,统一管理也可以,有一个开发者就是这样干,不用use 直接反斜杠\ 新建文件夹\你要的类,但是为了清楚明白还是use比较好。

在你composer require tp5-rbac 出现下载进度,就说明在安装中,如果没有有错误信息,就直接在compose.json文件中require大括号里面手动加上 "gmars/tp5-rbac":"dev-master", 然后命令composer update ,就会安装了,这个很多教程都有说,其实用composer刚开始觉得挺高大上,其实就是json文件,composer里php类,运用php自动加载类的机制实现的,没什么太魔幻的。正确使用namespace和use后,就很方便了。

原文链接:https://blog.csdn.net/qq_18248719/article/details/81805310

原文:https://www.cnblogs.com/bushui/p/11997079.html

php导包,Thinkphp5.1 导入第三方包的问题相关推荐

  1. Go 安装第三方包 与 GoLand 导入第三方包

    欢迎关注:程序员开发者社区 一 . 自动安装第三方包 通过 go get github.com/go-sql-driver/mysql 命令安装第三方类库 要启用 go get github.com/ ...

  2. JAVA第三方包导入但找不到类,解决:导入第三方包报错java.lang.NoClassDefFoundError:XXX.XXX,XXXXXX...

    报错信息如下,主要是导入androidpn测试client端,结果报错 04-02 16:28:34.325: E/dalvikvm(485): Could not find class 'org.a ...

  3. python 导入第三方包_Python第三方包的导入

    我们知道,定义在环境变量PYTHONPATH里是可以直接用import导入的.下面我们来操作如何从非pythonpath目录导入第三方包或者自己定义的包. 假定我们的包有如下的目录结构:person ...

  4. python 导入第三方包_python 导入第三方包---

    python导入第三方包的方法: 最重要的四件事: 1 import sys sys.path.append("..") 2要引入的包所在文件添加:__init__.py 3 fr ...

  5. VsCode,GO语言,go mod 下导入第三方包飘红,但是可以执行

    问题:使用VScode编写的Go语言代码,开启了go mod,导入第三方包 import "github.com/360EntSecGroup-Skylar/excelize" 飘 ...

  6. python安装第三方包_python 怎么安装第三方包

    使用Pip工具进行第三方包安装 Pip工具是Pytho自带的第三包安装工具,在pytho安装过程中已经安装完成,无需独立安装,附上python第三方安装包地址:https://pypi.python. ...

  7. pyspark:导入第三方包

    集群上的python环境通常没有任务计算所需要的包,pyspark中的SparkContext提供pyFiles参数供我们导入第三包,这里的包可以是我们自己写的py文件,也可以是.whl文件,比如测试 ...

  8. 【Python打包成exe方法】——已解决导入第三方包无法打包的问题​

    前言 在我们写代码的过程中,我们开发的脚本一般都会用到一些第三方包,可能别人也需要用到我们的脚本,如果我们将我们的xx.py文件发给他,他是不能直接用的,他还需要安装python解释器,甚至还要安装我 ...

  9. python怎么导入包-Python模块导入与包构建最佳实践

    [TOC] 最开始写程序的时候,都是一个文件里输入几行源码(python 的一个 web 框架bottle就特别强调自己是单文件框架).随着程程式变大变复杂,一个文件很难承载如此多的功能,因此将代码拆 ...

最新文章

  1. ABAP 时间月份的F4帮助
  2. 在 SAP BTP 平台 Neo 环境里使用 SAP Cloud SDK 创建应用
  3. Android之页面有变化用onWindowFocusChanged来监听权限是否开启
  4. NutchServer的安全层
  5. @async 没有异步_扒一扒VueCLI3.0中Axios异步请求同步化
  6. 2020年7月美妆行业抖音小红书营销报告
  7. 理解C#中的里氏转换
  8. k8s一个容器多个镜像_从零开始学K8s: 6.运行一个简单的容器
  9. Unity3D asset bundle 格式简析
  10. android自定义速度仪表盘,自定义View实战:汽车速度仪表盘
  11. 把Excel批注的“红三角”放在单元格左上角_excel批注的玩法,看看你会几个
  12. “衣带渐宽终不悔,为伊消得人憔悴”的赏析
  13. This scheduler instance is still active but was recovered by another instance in the cluster.
  14. 【优秀课设】基于OpenCV的Python人脸识别、检测、框选(遍历目录下所有照片依次识别 视频随时标注)
  15. 讲解我在Ps(Adobephoto shop)中一个作品
  16. 天龙八部手工架设--Linux 服务器环境搭建(游戏数据库篇)
  17. Scapy的使用方法
  18. js 继承的是什么?如何实现继承?
  19. windows10系统解除微软账户和本地账户绑定
  20. 【面试记录】长安汽车一面

热门文章

  1. 操作系统学习:Linux0.12初始化详细流程-进程1加载虚拟盘和根文件系统安装
  2. 爬虫之selenium爬取斗鱼网站
  3. python递归使用
  4. CMD命令,常驻内存的与外部的介绍 还有CMD格式化
  5. 基于DQN强化学习训练一个超级玛丽
  6. 长期分享干货的技术大佬
  7. java猜拳游戏代码
  8. 触发器实现两表之间的INSERT,DELETE,UPDATE
  9. 科学家开发出新型生物质基碳材料负载催化剂制备方法
  10. java 闭包与回调