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

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

下载phpexcel,将整个文件夹放到vendor文件夹里面,如下图

在控制器中的使用方法

        vendor("PHPExcel.PHPExcel")

        $objPHPExcel = new \PHPExcel()

        $file_name = date('YmdHis').'.xls'

        header("Content-Disposition:attachment filename=".$file_name)

        $objActSheet = $objPHPExcel->getActiveSheet()->setTitle('成绩单')

        $objActSheet->SetCellValue('A1', 'ID')

        $objActSheet->SetCellValue('B1', '名称')

        $objActSheet->SetCellValue('C1', '分数')

        $list = ""//数据列表

        if($list){

            foreach ($list as $k => $v){

                $i = $k + 2

                $objActSheet->SetCellValue('A'.$i,''. $v['id'])

                $objActSheet->SetCellValue('B'.$i,''. $v['name'])

                $objActSheet->SetCellValue('C'.$i,''. $v['score'])

            }

            $objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel)

            $objWriter->save('php://output')//输出到浏览器

            exit

        }

不麻烦 ide会自动引入。是必须要引入的。这个东西没有办法。只要你用这个东西了就得use

所有语言都是如此。也没有一楼说的那样‘’这样的话会造成资源浪费‘’

哪怕你面向过程你还得引入文件呢 除非你全写一个页面上,那你也得引入一次才能弄。


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

原文地址: http://outofmemory.cn/tougao/11587779.html

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

发表评论

登录后才能评论

评论列表(0条)

保存