Thinkphp 5 怎么在控制器引入thinkphpvendor 的第三方扩展

Thinkphp 5 怎么在控制器引入thinkphpvendor 的第三方扩展,第1张

第三方类库指除了 ThinkPHP 框架、应用项目类库之外的其他类库,一般由第三方系统或产品提供,如旅宴芹 Smarty、Zend

等系统的类库等。

前面使用自动加载或 import 方法祥镇导入的类库,ThinkPHP 约定是以 .class.php

为后缀的,非这类的后缀,需要通过 import 的参数来控制。

但对第三类库,由于不会有此约定,拆毕其后缀只能认为是 php

。为了方便的引入其他框架和系统的类库,ThinkPHP 特意提供了导入第三方类库的功能。第三方类库统一放置在 ThinkPHP系统目录/Vendor

下面,并且使用 vendor 方法导入。

vendor 方法

vendor 方法的用法和 import

方法完全一致,只是其默认值略有差别。

语法:

boolen vendor(class, baseUrl,

ext)

参数说明: 参数 说明

class 必须,表示要导入的类库,采用命名空间的方式。

baseUrl

可选,表示导入的基础路径,省略的话系统采用 ThinkPHP系统目录/Vendor 目录。

ext 可选,表示导入的类库后缀,默认是 .php

与 import 方法的区别在于,vendor 方法默认的导入路径为 ThinkPHP系统目录/Vendor 目录,默认后缀为 .php

vendor 方法导入第三方类库例子

例如我们要引入 Zend 的 FilterDir.php 文件,我们把文件带目录放到 Vendor

目录下面,这个时候 Dir 文件的路径就是 VendorZendFilterDir.php 。使用 vendor

方法导入:

vendor('Zend.Filter.Dir')

同样对于包含 . 符号的文件,将 . 号用 # 符号代替,或者指定

ext 参数。

提示

实际上 vendor 方法是调用 import 方法来实现类库导入的,而且 vendor 方法也支持自定义导入路径。但

ThinkPHP 约定所有第三方框架的类库文件统一放到系统的 Vendor 目录下面,因此实际中尽可能的遵守该约定。

另外请格外注意 vendor

的首字母应该小写(官方手册为大写)。

类库扩展

类库扩展包括基类库扩展、应用类库扩展和第三方类库扩展,所有扩展类库不会自动加载,需要手动加载或者定义别名和配置自动加载(详细可以参考4.2.3类库导入和4.2.5自动加载)。

基类库扩展

目前支持的基类库扩展包括ORG(第三方公共类库包)和Com(企业类库包)。你可以在ORG类库目录下面添加自己需要的类库,你甚至还可以创建属于自己企业的类库,只需要在Extend/Library目录下面创建Com目录,然后在里面增加相应的类库就可以方便的使用import方法导入了。例如,我们在Extend/Library/Com下面创建了Sina目录,并且放了Util\UnitTest.class.php类库文件,可以使用下面的方式导入

import('Com.Sina.Util.UnitTest')

目前官方提供的扩展或者态凳第三方扩展都在ORG类库包下面。

应用类库扩展

项目类库的扩展,和基类库的扩展一样,我们可以在项目类库目录增颤族加你想要的子目录,也只有在项目类库目录下面增加的类库才能使用import方法导入。例如,我们在MyApp的项目类库目录Lib下帆洞旅面增加Common和Util目录,就可以这样加载这些目录下面的类库文件了:

import('MyApp.Util.UnitTest')

import('@.Common.CommonUtil')

第三方类库扩展

如果你直接使用的是第三方的类库包,或者是类名和后缀和ThinkPHP的默认规则不符合的,我们建议你放到第三方类库扩展目录Extend/Vendor目录下面,并使用vendor方法来导入。

例如,我们把Zend的Filter\Dir.php 放到Vendor目录下面,这个时候Dir文件的路径就是

Vendor\Zend\Filter\Dir.php,我们使用vendor方法导入就是:

Vendor('Zend.Filter.Dir')

需要注意的是,vendor方法默认导入的类库后缀是php的而不是class.php的,如果你的第三方类库的后缀是class.php,可以使用:

Vendor('Zend.Filter.Dir','','.class.php')

或者使用:

import('Zend.Filter.Dir',VENDOR_PATH)

通过使用第三方类库扩展,我们可以直接使用Zend、CI或者其他框架中的类库。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12236764.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存