ThinkPHP怎么导入自定义类库

ThinkPHP怎么导入自定义类库,第1张

ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。只要按照规范定义,都可以实现自动加载。

类库存放位置:

Think目录:系统核心类库

Org目录:第三方公共类库

这些目录下面的类库都可以自动加载,你只要把相应的类库放入目录中,然后添加或者修改命名空间定义。你可以在Org/Util/目录下面添加一个Image.class.php

文件,然后添加命名空间如下:

namespace Org\Util

class Image {

}

这样,就可以用下面的方式直接实例化Image类了:$image = new \Org\Util\Image

公共类库除了在系统的Library目录之外,还可以自定义其他的命名空间,我们只需要注册一个新的命名空间,在应用或者模块配置文件中添加下面的设置参数:

'AUTOLOAD_NAMESPACE' =>array(

'Lib' =>APP_PATH.'Lib',

)

如果你的类库没有采用命名空间的话,需要使用import方法先加载类库文件,然后再进行实例化,例如:我们定义了一个Counter类(位于Com/Sina/Util/Counter.class.php):

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

$object = new \Counter()

这些看tp手册的扩展部分,很简单也很详细

第一步 网上下载PHPExcel类库包,解压后

打开Classes目录可以看到有个PHPExcel.php文件,将这个文件更名为PHPExcel.class.php

第二步 将整个目录放到项目的ORG目录下此时的目录结构

第三步 利用thinkphp的import方法在Action中将PHPExcel类导入

import ( '@.ORG.PHPExcel.Classes.PHPExcel' )

这样你就可以使用PHPExcel类库所提供的 *** 作Excel文档的方法了

类库扩展

类库扩展包括基类库扩展、应用类库扩展和第三方类库扩展,所有扩展类库不会自动加载,需要手动加载或者定义别名和配置自动加载(详细可以参考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/bake/11261418.html

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

发表评论

登录后才能评论

评论列表(0条)

保存