thinkphp6: 在extend目录下开发扩展类(php 8.1.1 / thinkphp v6.0.10LTS )

一,extend目录的功能:

      extend目录可以存放自己所开发的具备通用功能的类,        vendor目录存放的是通过composer下载的第三方库        注意与app目录下的内容区分

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

         对应的源码可以访问这里获取: https://github.com/liuhongdi/
         或: https://gitee.com/liuhongdi

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,编写PHP代码:

1,controller/Article.PHP
<?PHP
declare (strict_types = 1);
 
namespace app\controller;
 
use app\BaseController;
use zip\zip;
 
class Article extends BaseController
{
    //生成zip文件
    public function zip() {
        $pathArr = [
            "/var/www/html/goodsimage/orig/61e7c3a0327ad.gif",
            "/var/www/html/goodsimage/orig/gsl.jpeg",
        ];
        $zipName = "/var/www/html/goodsimage/image.zip";
        $zip = new zip();
        $res =$zip->makeZip($pathArr,$zipName);
        //if ($res['code'])
        echo $res['code'];
        exit;
    }
}
2,extend/zip/zip.PHP
<?PHP
namespace zip;
 
class zip {
    //打包一个zip文件
    public function makeZip($pathArr,$zipName) {
        $zip = new \ZipArchive();
        if($zip->open($zipName,\ZipArchive::CREATE|\ZipArchive::OVERWRITE)){
            foreach($pathArr as $file){
                if(!file_exists($file)){
                    continue;
                }
                //向压缩包中添加文件
                $zip->addFile($file,basename($file));
            }
            $zip->close();
            return ['code'=>0,'msg'=>"创建成功",'path'=>$zipName];
        }else{
            return ['code'=>1,'msg'=>'创建失败'];
        }
    }
}

三,测试效果

1,访问:
http://192.168.219.6:8000/article/zip
返回:

2,查看生成的zip包:

四,查看PHP和thinkPHP的版本: 

PHP:
liuhongdi@lhdpc:/data/PHP/admapi$ PHP --version
PHP 8.1.1 (cli) (built: Dec 20 2021 16:12:16) (NTS)
copyright (c) The PHP Group
Zend Engine v4.1.1, copyright (c) Zend Technologies
    with Zend OPcache v8.1.1, copyright (c), by Zend Technologies 
thinkPHP:
liuhongdi@lhdpc:/var/www/html$ cd /data/PHP/admapi/
liuhongdi@lhdpc:/data/PHP/admapi$ PHP think version
v6.0.10LTS 

 

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...