# easydoadmin **Repository Path**: matrixonline/easydoadmin ## Basic Information - **Project Name**: easydoadmin - **Description**: EasydoAdmin是一款基于PHP的Yii2框架和Bootstrap的AdminLte主题进行开发。包含管理员账号,模块管理,缓存管理,云存储设置以及权限管理功能 - **Primary Language**: PHP - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: http://www.easydo.work/ - **GVP Project**: No ## Statistics - **Stars**: 24 - **Forks**: 4 - **Created**: 2021-02-26 - **Last Updated**: 2025-06-09 ## Categories & Tags **Categories**: backend **Tags**: None ## README # EasydoAdmin ## 简介 EasydoAdmin是一款基于PHP的Yii2框架和Bootstrap的AdminLte主题进行开发。包含管理员账号,模块管理,缓存管理,云存储设置以及权限管理功能。欢迎大家试用, [官方网站](https://www.easydo.work)。 ## 安装说明 - 需要php7以上版本 - 必须开启短标签 `php.ini` `short_open_tag = On` - 建议试用的朋友先去了解一下Yii2的使用手册:https://www.yiichina.com/doc/guide/2.0 - 下载源码后,导入项目根目录的sql文件到数据库中 - 按照Yii2使用说明配置开发环境(dev)和线上环境(prod)的配置文件数据库信息 - 项目根目录命令行模式下执行: ```sh php init ``` - http服务配置 ```sh #nginx location / { try_files $uri $uri/ /index.php$is_args$args; } #apache #项目backend和frontend的web目录中已经放入.htaccess文件 Options +FollowSymLinks IndexIgnore / RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php ``` - 默认后台登录账号`admin`密码`123456` ## 应用模块功能 项目根目录下放置一个`modules`文件夹是存放模块的,暂时为空添加插件使用. - `common\components\autoLoad\Load.php` 在系统运行时,在`common\config\config.php`文件中自定义`on beforeRequest`事件 ```php 'on beforeRequest' => ['\common\components\autoLoad\Load','run'] ``` 该事件会从数据库表`app_modules`中获取应用模块信息,不同的应用(backend,console,frontend)会加载不同的模块 - `common\components\autoLoad\Log.php` 模块加载异常时会把错误信息放到根目录下`common/runtime/logs/modulesLog.log`文件中 - 添加自定义组件说明,例: + `modules`文件夹下的模块必须有继承`yii\base\Module`类(\modules\demo\Module) + `modules`文件夹下的模块有继承`common\components\autoLoad\Auth.php`类(可选) ```php class \modules\demo\Auth extends \common\components\autoLoad\Auth { /** * @var array 权限名称 */ public $permissions = []; /** * @var array 菜单名称 */ public $menus = []; /** * @var array 路由黑名单 */ public $blackList = []; /** * 添加权限前执行 * beforeAdd * @return bool */ public function beforeAdd() { return true; } /** * 添加权限后执行 * afterAdd * @return bool */ public function afterAdd() { return true; } } // \modules\demo\Module` 实现公共方法auth namespace modules\demo; class Module extends \yii\base\Module { /** * auth * @param $id * @param bool $boolStatus */ public function auth($id, $boolStatus = true) { $auth = (new Auth($id)); $boolStatus ? $auth->add() : $auth->remove(); } } //定义插件信息 //在`modules\demo`目录下添加文件`modulesInfo.json`扩展信息,导入使用, { "id": "demo",//模块唯一标识 "type": "backend", //模块运行的应用名称 "name": "测试的",//模块名称 "class": "modules\\demo\\Module",//模块加载文件 "config": "",//\modules\demo\Module的属性配置json字符,查看代码`backend\models\AppModules`第100行 "status": 1//模块状态 1启用 0禁用 } ``` ## 内置组件 项目根目录下`backend/components/widget`内置几个常用组件 * 富文本编辑器 [WangEditor](https://www.wangeditor.com/) * 上传组件`backend/controllers/FileController.php` * 日期选择组件 [laydate](https://www.layui.com/laydate/) * 图形开关组件(修改`nick-denry/yii2-round-switch-column`组件) * 基于AdminLte主题添加`ActiveForm` `ActiveField` `ActionColumn` `GridView`等常用组件 * 基于AdminLte主题添加`adminLte`的`Gii`样式主题 ```php $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Module', 'generators' => [ 'crud' => [ 'class' => 'yii\gii\generators\crud\Generator', 'templates' => [ 'adminLTE' => '@backend/components/giiTemplate/crud/default', ] ], 'model'=>[ 'class' => 'yii\gii\generators\model\Generator', 'templates' => [ 'adminLTE' => '@backend/components/giiTemplate/model/default', ] ], ], ]; ``` ### composer widget组件说明 * 树形表格 [jianyan74/yii2-treegrid](https://packagist.org/packages/jianyan74/yii2-treegrid) * 行内编辑 [yii2mod/yii2-editable](https://packagist.org/packages/yii2mod/yii2-editable) * 云存储 [feehi/yii2-cdn](https://packagist.org/packages/feehi/yii2-cdn) * 权限备份 [easydowork/yii2-admin-backup](https://packagist.org/packages/easydowork/yii2-admin-backup) * ... ##全局函数 文件`common/components/helper/YiiHelper.php`通过composer autoload files 自动加载此文件 ## 文件缓存 公用配置文件`common/config/main.php`已修改文件缓存目录为`@common/runtime/cache`,保持多个应用能够统一获取缓存. ```php 'cache' => [ 'class' => 'yii\caching\FileCache', 'cachePath' => '@common/runtime/cache', ] ```