PHPackages                             jcbowen/jcbase-yii2 - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. jcbowen/jcbase-yii2

ActiveYii2-extension[Framework](/categories/framework)

jcbowen/jcbase-yii2
===================

自用yii2基础扩展库，提供一些常用的封装，方便开发。

v0.30.3(6mo ago)239512MITPHPPHP &gt;=7.2.0 &lt;8.0.0

Since Jul 19Pushed 3w ago2 watchersCompare

[ Source](https://github.com/jcbowen/jcbase-yii2)[ Packagist](https://packagist.org/packages/jcbowen/jcbase-yii2)[ RSS](/packages/jcbowen-jcbase-yii2/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (8)Versions (97)Used By (2)

jcbase-yii2
===========

[](#jcbase-yii2)

yii2基础扩展库，提供一些常用公共方法、基础控制器、常用工具的封装，节约yii2项目的开发时间。

[![Latest Stable Version](https://camo.githubusercontent.com/3e3ef79d1ff06f18f71e7a1b6bbcf7ec533738c0edb51e42c92ad2325dd2e575/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a63626f77656e2f6a63626173652d796969322e737667)](https://packagist.org/packages/jcbowen/jcbase-yii2)[![Total Downloads](https://camo.githubusercontent.com/e86a32a2803db6b0ddc38753745699d6f8166ee28129a66fe16571275beb4411/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a63626f77656e2f6a63626173652d796969322e737667)](https://packagist.org/packages/jcbowen/jcbase-yii2)

### 已实现功能（未全部展示，更多功能请查看源码）

[](#已实现功能未全部展示更多功能请查看源码)

- 全局变量$\_GPC，合并存放了web请求中传递给服务器的get、post、json数据
- 全局变量$\_B，系统中的公共变量都会存到其中
- web基础控制器
- 控制台基础控制器
- 数据模型基础活动类，实现update/insert时自动更新updated\_at字段和created\_at字段等功能
- 错误码定义类
- 验证码显示、扩展
- AES加解密
- SM4加解密
- 基础工具包
- CRUD类封装
- 默认附件表数据模型
- 文件上传类封装（本地/腾讯云cos/阿里云oss）
- get/post/socket请求封装
- 图片操作类封装
- 安全过滤类封装
- 模版引擎封装
- 路由优化封装
- 多平台短信发送（云通讯等）
- 支付通知数据处理
- 拼音转换功能
- 二维码生成
- Redis操作封装
- 地区代码处理
- 日历功能
- 字段过滤
- 内容处理
- 通信相关功能
- Excel处理
- 天气相关功能
- 缓存操作封装
- 支持配置字段类型，在toSave以及不asArray的actionDetail中自动转换字段类型（支持json/json&amp;base64/serialize/round\_money/rich\_text类型）
- 组件数组访问支持

### 安装

[](#安装)

```
composer require jcbowen/jcbase-yii2
```

#### 环境要求

[](#环境要求)

- PHP版本：&gt;=7.2.0 &lt;8.0.0
- 需安装的PHP扩展：
    - openssl
    - curl
    - json
    - mbstring
    - simplexml
    - bcmath
    - libxml
    - pdo
    - iconv
    - gd
    - imagick

#### 依赖说明

[](#依赖说明)

安装后会自动安装以下依赖：

- yiisoft/yii2-redis ^2.0.18
- guzzlehttp/guzzle ^6.2 || ^7.0
- phpoffice/phpspreadsheet ^1.29.1
- aliyuncs/oss-sdk-php ~2.4
- qcloud/cos-sdk-v5 ^2.5
- wechatpay/wechatpay ^1.4
- tencentcloud/tencentcloud-sdk-php ^3.0

### 配置说明

[](#配置说明)

加入到params.php或者params-local.php中

```
return [
    // 基础设置
    'setting'    => [
        'fileMode' => 755 // 文件权限
    ],

    // 域名配置
    'domain'     => [
        'frontend'         => 'https://frontend.domain.cn/', // 业务端域名，又称前端域名
        'backend'          => 'https://backend.domain.cn/', // 管理端域名
        'attachment_local' => 'https://frontend.domain.cn/', // 本地附件访问域名，一般推荐为业务端域名
        'attachment'       => 'https://frontend.domain.cn/', // 远程附件访问域名，为空时等于本地附件访问域名
    ],

    // 文件上传配置
    'jcFile' => [
        'attachmentRoot'      => '@frontend/web', // 附件本地存储根目录(不包含附件目录名，默认为：@webroot)
        'attachmentModel'     => 'Jcbowen\JcbaseYii2\models\AttachmentModel', // 附件表模型，表中字段与默认字段名称不一致时需配置attachmentFieldsMap
        'attachmentFieldsMap' => [ // 附件表字段映射，默认为空，表示使用默认字段名称
            'id'         => 'id', // 主键，递增ID
            'sid'        => 'sid', // 附件所属站点
            'sid_sub'    => 'sid_sub', // 附件所属子站点
            'group_id'   => 'group_id', // 分组ID
            'appid'      => 'appid', // 应用id
            'uid'        => 'uid', // 上传用户
            'mid'        => 'mid', // 上传会员
            'type'       => 'type', // 附件类型
            'size'       => 'size', // 附件尺寸
            'width'      => 'width', // 图片宽度(像素)
            'height'     => 'height', // 图片高度(像素)
            'md5'        => 'md5', // 文件md5
            'filename'   => 'filename', // 附件上传时的文件名
            'attachment' => 'attachment', // 附件相对路径
            'is_display' => 'is_display', // 是否在选择器中显示
            'deleted_at' => 'deleted_at', // 删除时间
            'updated_at' => 'updated_at', // 更新时间
            'created_at' => 'created_at', // 上传时间
        ],
        'remoteConfig'        => [
            'cos' => [
                'secretId'  => '', // 腾讯云cos secretId
                'secretKey' => '', // 腾讯云cos secretKey
                'bucket'    => '', // 腾讯云cos bucket
                'region'    => '', // 腾讯云cos region
                'url'       => '' // 腾讯云cos url
            ],
            'oss' => [
                'AccessKeyId'     => '', // 阿里云oss AccessKeyId
                'AccessKeySecret' => '', // 阿里云oss AccessKeySecret
                'endpoint'        => '', // 阿里云oss Server
                'bucket'          => '', // 阿里云oss Bucket
            ],
        ]
    ],

    // 附件配置
    'attachment' => [
        'dir'        => 'attachment', // 本地附件目录名，默认为attachment
        'isRemote'   => 0, // 是否启用远程附件 0不启用 1启用
        'remoteType' => 'cos', // 远程附件类型，cos代表腾讯云cos，qiniu代表七牛云存储，oss代表阿里云oss
    ],

    // 上传配置
    'upload'     => [
        'image' => [// 图片上传配置
            'extensions' => [// 允许上传的文件后缀
                'gif',
                'jpg',
                'jpeg',
                'png',
                'bmp',
                'ico'
            ],
            'limit'      => 1024, // 上传的文件大小限制，单位：kB，0为不限制

            // ---------- 图片特有配置 ----------/
            'thumb'      => 0, // 是否开启图片压缩功能 0不开启 1开启
            'width'      => 150, // 图片压缩后的宽度
        ]
    ],

    // 短信配置
    'SmsConfig'  => [
        'type'       => 'YunTongXun', // 短信类型，aliyun代表阿里云短信，qcloud代表腾讯云短信，YunTongXun代表云通讯短信
        'YunTongXun' => [
            'AccountSid'   => '',
            'AccountToken' => '',
            'AppId'        => '',
            'ServerIP'     => 'app.cloopen.com',
            'ServerPort'   => '8883',
            'SoftVersion'  => '2013-12-26',
            'BodyType'     => 'json',
            'enableLog'    => true,
            'logPath'      => '@runtime/log/sms-ytx.txt',
        ]
    ],

    // 微信小程序配置
    'WeChatMiniProgramConfig' => [
        'app_id'                  => '', // 微信小程序AppID
        'mchId'                   => '', // 微信商户号
        'merchantCertificateSerial' => '', // 微信商户证书序列号
        'apiKey'                  => '', // 微信支付API v3密钥
        'notifyUrl'               => '', // 微信支付回调地址
    ],

    // 支付宝配置
    'alipay' => [
        'app_id'                   => '', // 支付宝AppID
        'rsaPrivateKeyFile'        => '@cert/alipay/rsa_private_key.txt', // 商户私钥文件路径
        'alipayRsaPublicKeyFile'   => '@cert/alipay/alipay_rsa_public_key.txt', // 支付宝公钥文件路径
        'notifyUrl'                => '', // 支付宝回调地址
    ],

    // 客户端白名单路由配置（用于客户端history模式）
    'clientWhiteRoute' => [
        '^api/', // API路由白名单
        '^admin/', // 管理端路由白名单
        '^login$', // 登录页白名单
    ],
]
```

### 使用示例

[](#使用示例)

#### 1. Web基础控制器使用

[](#1-web基础控制器使用)

```
