# phpmy_sqlLite **Repository Path**: 605011288/phpmy_sql-lite ## Basic Information - **Project Name**: phpmy_sqlLite - **Description**: phpmy_sqlLite - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-16 - **Last Updated**: 2026-06-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MyPHPLiteMysqlAdmin **Version:** 1.0 **Copyright (C) 2026** [605011288@qq.com](mailto:605011288@qq.com) **Maintainer:** [605011288@qq.com](mailto:605011288@qq.com) **License:** GNU GPL v3 or later — free and open source MyPHPLiteMysqlAdmin 是多 PHP 版本数据库管理工具,同时支持 SQLite 和 MySQL 数据库,支持 PHP 7.3 / 7.4 / 8.3 / 8.4 / 8.5,免费供个人与商业使用。 --- ## 特性 - 轻量级 Web 界面,管理 SQLite2 / SQLite3 和 MySQL 数据库 - **多 PHP 版本支持**:按版本目录隔离兼容代码,公共逻辑只维护一份 - **多数据库驱动**:内置 SQLite 和 MySQL 驱动,可灵活切换 - **MVC 架构**:控制器、服务、模型分层设计,职责清晰 - **数据库分离**:系统库(登录认证)与用户库(业务数据)物理隔离 - **统一类库**:请求、响应、会话、日志等核心组件统一封装 - **依赖注入**:通过服务定位器实现模块化调用 - 浏览、增删改查、导入导出、SQL 编辑器、索引与触发器管理等完整功能 - 密码保护登录,可配置多数据库 --- ## 环境要求 - PHP **7.3+**(推荐 8.3+) - 已启用 PDO、SQLite3 或 SQLite 扩展之一(SQLite 支持) - 已启用 PDO MySQL 扩展(MySQL 支持) - Web 服务器(Nginx / Apache 等),或 **RoadRunner** 高性能模式(见下文) --- ## 目录结构 ``` php_lite_admin/ ├── index.php # 统一入口(dispatcher → view / api) ├── app/ # 应用核心类库(自动加载) │ ├── Base.class.php # 项目基类(单例模式,统一管理全局资源) │ ├── MicroTimer.class.php # 计时器类 │ ├── PlaCache.class.php # 缓存类 │ ├── PlaDatabase.class.php # 数据库管理器(统一驱动接口) │ ├── PlaFile.class.php # 文件操作类 │ ├── PlaLog.class.php # 日志类 │ ├── PlaRequest.class.php # 请求处理类 │ ├── PlaResponse.class.php # 响应处理类(含资源输出) │ ├── PlaSession.class.php # 会话管理类 │ ├── PlaAuthorization.class.php # 认证授权类 │ ├── Database.class.php # 数据库操作类(SQLite/MySQL) │ ├── PlaGetParameters.class.php # URL 参数管理类 │ ├── PlaResources.class.php # 资源输出类 │ ├── functions/ # 独立辅助函数 │ │ ├── compat.php # 兼容性与类别名 │ │ ├── database.php # 数据库相关函数 │ │ ├── auth.php # 认证相关函数 │ │ ├── response.php # 响应相关函数(RR 兼容) │ │ ├── roadrunner.php # RoadRunner 相关函数 │ │ ├── url.php # URL 资源函数 │ │ ├── core_defaults.php # 核心配置默认值 │ │ └── core_run.php # 核心请求处理逻辑 │ ├── drivers/ # 数据库驱动 │ │ ├── SqliteDriver.class.php # SQLite 驱动 │ │ └── MysqlDriver.class.php # MySQL 驱动 │ ├── enums/ # 枚举类 │ │ └── AppEnums.class.php │ ├── exception/ # 异常类 │ │ ├── PlaException.class.php # 异常基类 │ │ ├── PlaRequestEndException.class.php # RR 专用异常 │ │ ├── PlaApiException.class.php │ │ ├── PlaPublicException.class.php │ │ ├── PlaSqliteException.class.php │ │ ├── PlaMysqlException.class.php │ │ ├── PlaDbException.class.php │ │ ├── PlaFileException.class.php │ │ └── PlaWebException.class.php │ ├── factory/ # 工厂类 │ │ ├── PlaDbFactory.class.php # 数据库连接工厂 │ │ ├── PlaLogFactory.class.php # 日志工厂 │ │ ├── PlaCacheFactory.class.php # 缓存工厂 │ │ └── PlaUploadFactory.class.php # 上传工厂 ├── api/ # 业务层(控制器、服务、模型、中间件) │ ├── controllers/ # 控制器目录 │ │ ├── BaseController.class.php # 基础控制器(通用方法,所有控制器继承) │ │ ├── api/ # API 接口控制器 │ │ │ ├── ApiBaseController.class.php # API 基类控制器(JSON 响应) │ │ │ ├── AdminController.class.php │ │ │ ├── LoginController.class.php │ │ │ ├── RegisterController.class.php │ │ │ ├── DatabaseController.class.php │ │ │ ├── TableController.class.php │ │ │ └── RowController.class.php │ │ └── web/ # 页面视图控制器 │ │ ├── WebBaseController.class.php # Web 基类控制器(HTML 渲染) │ │ ├── AdminController.class.php │ │ ├── LoginController.class.php │ │ ├── RegisterController.class.php │ │ └── InstallController.class.php │ ├── services/ # 服务层(业务逻辑) │ │ ├── AdminService.class.php │ │ ├── AuthService.class.php │ │ ├── DatabaseService.class.php │ │ ├── ImportExportService.class.php │ │ ├── IndexService.class.php │ │ ├── InstallService.class.php │ │ ├── LogService.class.php │ │ ├── LoginService.class.php │ │ ├── RegisterService.class.php │ │ ├── RowService.class.php │ │ ├── TableService.class.php │ │ └── UserService.class.php │ ├── models/ # 数据模型层 │ │ ├── AdminModel.class.php │ │ ├── InstallModel.class.php │ │ └── UserModel.class.php │ ├── middlewares/ # 中间件 │ │ ├── AdminMiddleware.class.php # 管理员权限中间件 │ │ ├── AuthMiddleware.class.php # 认证中间件 │ │ └── InstallMiddleware.class.php # 安装检查中间件 ├── router/ # 路由配置 │ ├── web.php # 页面路由配置 │ └── api.php # API 接口路由配置 ├── config/ # 配置文件 │ ├── var-common.ini.example # 统一配置模板 │ ├── var-common.ini # 本地运行配置(勿提交) │ ├── database.php # 数据库连接配置 │ ├── system_database.php # 系统数据库配置(登录认证) │ ├── install.php # 安装向导配置 │ ├── log.php # 日志配置 │ ├── request.php # 请求配置 │ ├── response.php # 响应配置 │ ├── router.php # 路由配置 │ ├── session.php # 会话配置 │ ├── cache.php # 缓存配置 │ ├── file.php # 文件配置 │ └── version.php # 版本定义 ├── common/ # 公共代码(辅助函数,自动加载) │ ├── config.php # 配置加载函数 │ ├── dispatcher.php # 请求分发器 │ ├── exception.php # 全局异常处理 │ ├── install.php # 安装向导逻辑 │ ├── log.php # 日志公共函数 │ ├── request.functions.php # 请求处理函数 │ ├── response.php # 响应处理函数 │ ├── router.php # 路由处理函数 │ ├── middleware.php # 中间件处理函数 │ ├── services.php # 服务加载函数 │ ├── models.php # 模型加载函数 │ ├── view.php # 视图渲染函数 │ ├── lang.php # 多语言加载函数 │ ├── helpers.php # 辅助函数 │ └── version.php # 版本处理函数 ├── view/ # 前端页面模板 │ ├── layouts/ # 布局模板 │ │ └── admin.php # 后台布局 │ ├── partials/ # 局部模板 │ │ ├── breadcrumb.php │ │ ├── db_list.php │ │ ├── flash_message.php │ │ ├── footer.php │ │ ├── footer_admin.php │ │ ├── head.php │ │ ├── head_admin.php │ │ ├── sidebar.php │ │ ├── styles.php │ │ ├── tabs_database.php │ │ └── tabs_table.php │ ├── pages/ # 页面模板 │ │ ├── help.php │ │ ├── error_db_not_writable.php │ │ ├── error_db_setup.php │ │ ├── error_no_databases.php │ │ ├── error_not_dir.php │ │ └── error_register_globals.php │ ├── admin/ # 后台管理页面 │ │ ├── admin.php │ │ ├── database/ │ │ │ └── views.php │ │ └── table/ │ │ ├── column_confirm.php │ │ ├── column_create.php │ │ ├── column_edit.php │ │ ├── column_view.php │ │ ├── index_create.php │ │ ├── index_delete.php │ │ ├── row_create.php │ │ ├── row_editordelete.php │ │ ├── row_view.php │ │ ├── table_create.php │ │ ├── table_drop.php │ │ ├── table_empty.php │ │ ├── table_export.php │ │ ├── table_import.php │ │ ├── table_rename.php │ │ ├── table_search.php │ │ ├── table_sql.php │ │ ├── trigger_create.php │ │ ├── trigger_delete.php │ │ └── view_drop.php │ ├── install/ # 安装向导页面 │ │ ├── install_01.php │ │ ├── install_02.php │ │ └── install_03.php │ ├── login.php # 登录页面 │ ├── register.php # 注册页面 │ └── install.php # 安装入口页面 ├── data/ # 用户数据库文件目录 ├── system_database/ # 系统数据库目录(登录认证) │ └── admin.db # 系统管理员数据库 ├── lan/ # 多语言包 │ ├── en.php │ └── zh-CN.php ├── resources/ # 静态资源 │ ├── style.css │ ├── style_day.css │ ├── style_night.css │ ├── theme.js │ ├── public.js │ └── sidebar.js ├── runtime/ # 运行时目录(日志、PID、install.lock) │ ├── logs/ # 日志文件 │ └── sessions/ # Session 文件 ├── php7.3/ # PHP 7.3 兼容代码 ├── php7.4/ # PHP 7.4 兼容代码 ├── php8.3/ # PHP 8.3 兼容代码 ├── php8.4/ # PHP 8.4 兼容代码 ├── php8.5/ # PHP 8.5 兼容代码 ├── bin/ # 命令行工具 │ ├── init_system_db.php # 系统数据库初始化脚本(可选) │ ├── extract-admin-views.php │ ├── release-gitee.sh │ └── rr-php-worker ├── run.sh # RoadRunner 服务管理 ├── run.sh.md # run.sh 交互菜单规范 ├── rr-worker.php # RoadRunner PSR-7 Worker 桥接 ├── .rr.yaml # RoadRunner 基础配置 ├── composer.json # Composer 依赖与自动加载 ├── composer.lock ├── favicon.ico ├── index.html ├── CHANGELOG.md ├── LICENSE └── readme.md ``` --- ## 核心类库说明 ### App\Base(app/Base.class.php) 项目根类,单例模式,统一管理全局资源: - `getInstance()` - 获取单例实例 - `getService($name)` - 获取服务实例 - `getConfig($name)` - 获取配置数组 - `getRequest()` - 获取 PlaRequest 实例 - `getResponse()` - 获取 PlaResponse 实例 - `getSession()` - 获取 PlaSession 实例 - `getLog()` - 获取 PlaLog 实例 - `getDatabase()` - 获取 PlaDatabase 实例 - `getAuth()` - 获取认证对象 - `getLang()` - 获取语言数组 - `getParams()` - 获取参数对象 - `getDb()` - 获取当前数据库对象 - `getDatabases()` - 获取数据库列表 - `setAuth($auth)` - 设置认证对象 - `setLang(array $lang)` - 设置语言数组 - `setParams($params)` - 设置参数对象 - `setDb($db)` - 设置数据库对象 - `setDatabases(array $databases)` - 设置数据库列表 - `redirect($params, $message)` - 重定向 ### App\PlaRequest(app/PlaRequest.class.php) 请求处理类: - `method()` - 获取请求方法 - `isMethod($method)` - 判断请求方法 - `input($key, $default)` - 获取输入参数 - `get($key, $default)` - 获取 GET 参数 - `post($key, $default)` - 获取 POST 参数 - `validate($rules)` - 参数验证 - `ip()` - 获取客户端 IP - `url()` - 获取请求 URL ### App\PlaResponse(app/PlaResponse.class.php) 响应处理类: - `setSuccess($data, $message)` - 设置成功响应 - `setError($code, $message, $data)` - 设置错误响应 - `json()` - 输出 JSON 响应 - `html($html)` - 输出 HTML 响应 - `redirect($url, $statusCode)` - 重定向 - `file($filePath, $fileName)` - 文件下载 - `outputResource($resource)` - 输出静态资源(CSS/JS/图标) ### App\PlaSession(app/PlaSession.class.php) 会话管理类: - `start()` - 启动会话 - `set($key, $value)` - 设置会话值 - `get($key, $default)` - 获取会话值 - `has($key)` - 判断会话键是否存在 - `remove($key)` - 删除会话键 - `destroy()` - 销毁会话 - `generateToken()` - 生成 CSRF Token - `validateToken($token)` - 验证 CSRF Token - `isLoggedIn()` - 判断是否登录 ### App\PlaLog(app/PlaLog.class.php) 日志记录类: - `debug($message, $context)` - 调试日志 - `info($message, $context)` - 信息日志 - `warning($message, $context)` - 警告日志 - `error($message, $context)` - 错误日志 - `critical($message, $context)` - 严重错误日志 - `setChannel($channel)` - 设置日志频道 ### App\PlaUpload(app/PlaUpload.class.php) 文件上传类: - `validate($file)` - 验证上传文件 - `upload($file, $newName)` - 上传单个文件 - `uploadMultiple($files)` - 批量上传文件 - `delete($fileName)` - 删除已上传文件 - `getFileInfo($fileName)` - 获取文件信息 - `listFiles()` - 列出上传目录文件 - `getErrors()` - 获取错误信息 ### 工厂模式(app/factory/) 项目采用工厂模式管理核心组件实例化: | 工厂类 | 职责 | 对应组件 | |--------|------|----------| | `App\Factory\PlaDbFactory` | 创建数据库连接实例 | `PlaDatabase` | | `App\Factory\PlaLogFactory` | 创建日志记录实例(支持多频道) | `PlaLog` | | `App\Factory\PlaCacheFactory` | 创建缓存实例 | `PlaCache` | | `App\Factory\PlaUploadFactory` | 创建文件上传实例 | `PlaUpload` | **使用方式**: ```php // 通过 Base 类获取(推荐) $base = \App\Base::getInstance(); $log = $base->getLog(); $db = $base->getDatabase(); $cache = $base->getCache(); $upload = $base->getUpload(); // 直接通过工厂类获取 $log = \App\Factory\PlaLogFactory::getInstance()->create('session'); $db = \App\Factory\PlaDbFactory::getInstance()->create(); ``` --- ## 快速开始 ### 1. 部署 将项目放到 Web 可访问目录,例如: ``` /opt/homebrew/var/www/php_lite_admin/ ``` ### 2. 安装依赖 ```bash composer install ``` ### 3. 配置 首次部署从模板复制: ```bash cp config/var-common.ini.example config/var-common.ini ``` 编辑统一配置文件 `config/var-common.ini`: ```ini # PHP 版本路由 phpversion=8.5 phpversion_list=8.3,8.4,8.5,7.3,7.4 # 登录(请修改默认密码) username=admin password=your_secure_password # 数据库驱动(sqlite 或 mysql) driver=sqlite # 扫描 data/ 目录下的数据库 directory=data subdirectories=false # 上传大小上限(MB) max_upload_mb=500 # RoadRunner rr_port=9222 rr_workers=4 base_url=http://127.0.0.1:9222 ``` ### 4. 数据库配置 **系统数据库**(登录认证):`config/system_database.php` ```php PLA_ROOT . '/system_database/admin.db', 'user_db_path' => PLA_ROOT . '/data/', 'system_db_name' => 'admin.db', 'username' => 'admin', 'password' => '654321mm' ]; ``` **说明**: - 系统数据库用于存储登录认证的用户信息 - Web 安装流程会自动创建系统数据库和管理员账户 - 也可使用命令行工具手动初始化:`php bin/init_system_db.php` **用户数据库**(业务数据):`config/database.php` ```php 'sqlite', 'connections' => [ 'sqlite' => [ 'driver' => 'sqlite', 'directory' => 'data', 'filename' => 'main.db', ], 'mysql' => [ 'driver' => 'mysql', 'host' => 'localhost', 'port' => 3306, 'database' => 'your_database', 'username' => 'your_username', 'password' => 'your_password', 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', ], ], 'options' => [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4', ], ]; ``` ### 5. 首次安装(Web 向导) 若 `runtime/install.lock` 不存在或为空,访问 `index.php` 将进入安装向导: - 环境检测(PHP 版本、PDO SQLite/MySQL、目录权限等) - 选择数据库类型(SQLite 或 MySQL) - 配置数据库连接信息 - 设置登录帐号与密码 - 创建首个数据库 完成后写入 `config/var-common.ini`、`config/database.php` 与 `runtime/install.lock`。重新安装可删除 `install.lock`(会再次进入向导)。 ### 6. 访问 | 地址 | 说明 | |------|------| | `http://your-host/php_lite_admin/index.php` | 使用默认配置 | | `http://your-host/php_lite_admin/index.php?phpversion=8.3` | 指定 PHP 8.3 兼容代码路径 | | `http://your-host/php_lite_admin/index.php?s=login` | 登录页面 | | `http://your-host/php_lite_admin/index.php?s=register` | 注册页面 | ### 7. RoadRunner 模式(推荐) 使用内置 `run.sh` 以 RoadRunner 多 Worker 模式运行: ```bash cd /opt/homebrew/var/www/php_lite_admin # 首次:复制配置模板 cp config/var-common.ini.example config/var-common.ini # 安装 Composer 依赖与 RoadRunner 二进制 ./run.sh install brew install roadrunner ./run.sh start ./run.sh status ./run.sh verify-live ./run.sh package # 生成 dist/MyPHPLiteMysqlAdmin-1.0.0.zip ``` --- ## 命令行工具 ### 系统数据库初始化 如果需要手动初始化或重置系统数据库(用于登录认证),可以使用命令行工具: ```bash php bin/init_system_db.php ``` **说明**: - 此工具会创建 `system_database/admin.db` 和默认管理员账户 - Web 安装流程会自动执行此操作,此工具仅作为可选方案 - 如需重置,请先删除 `system_database/admin.db` 文件后再运行 --- ## 路由系统 ### 路由配置 路由分为页面路由和 API 路由: **页面路由**:`router/web.php` ```php return [ 'index' => [ 'controller' => 'Api\Controllers\Web\AdminController', 'action' => 'index', 'middleware' => 'AdminMiddleware', ], 'login' => [ 'controller' => 'Api\Controllers\Web\LoginController', 'action' => 'index', ], ]; ``` **API 路由**:`router/api.php` ```php return [ 'api/login' => [ 'controller' => 'Api\Controllers\Api\LoginController', 'action' => 'index', ], ]; ``` ### 路由访问 - 页面路由:`index.php?s=login` - API 路由:`index.php?s=api/login` --- ## 控制器架构 ### 基类控制器 **Api\Controllers\BaseController**(api/controllers/base.controller.php) - 通用方法:redirect、render、json、jsonError、input、getService **Api\Controllers\Web\BaseController**(api/controllers/web/base.controller.php) - 页面控制器基类:view、redirectTo、getErrorMessage **Api\Controllers\Api\BaseController**(api/controllers/api/base.controller.php) - API 控制器基类:success、error、validate、verifyCsrf ### 控制器目录 - `api/controllers/web/` - 页面视图控制器(渲染 HTML) - `api/controllers/api/` - API 接口控制器(返回 JSON) --- ## 服务层 服务层封装业务逻辑,通过 `pla_get_service()` 或 `Base::getService()` 获取实例: - `user` - 用户服务(登录验证、注册) - `admin` - 后台管理服务 - `database` - 数据库管理服务 - `table` - 表管理服务 - `row` - 行数据服务 - `install` - 安装服务 - `log` - 日志服务 --- ## 数据库驱动说明 ### SQLite 驱动 - 数据库文件存储在 `data/` 目录 - 支持 `.db`、`.db3`、`.sqlite`、`.sqlite3` 扩展名 - 自动扫描指定目录下的所有 SQLite 文件 ### MySQL 驱动 - 支持远程 MySQL 服务器连接 - 支持端口配置(默认 3306) - 支持 UTF-8 / UTF-8mb4 字符集 - 安装时需提供主机、端口、数据库名、用户名和密码 --- ## 配置说明 | 文件 | 用途 | |------|------| | `config/var-common.ini.example` | 配置模板(提交仓库,分发用) | | `config/var-common.ini` | 本地运行配置(**勿提交**,含密码) | | `config/database.php` | 用户数据库连接配置 | | `config/system_database.php` | 系统数据库(登录认证)配置 | | `config/install.php` | 安装向导配置 | | `config/log.php` | 日志配置(级别、路径、格式) | | `config/session.php` | 会话配置(生命周期、路径、前缀) | | `config/router.php` | 路由配置(路由表、参数名) | | `data/` | 用户数据库文件(已在 `.gitignore` 中忽略) | | `system_database/admin.db` | 系统管理员数据库 | | `runtime/install.lock` | 安装完成标记 | | `runtime/logs/` | 日志文件目录 | | `runtime/sessions/` | Session 文件目录 | | `php{version}/version.php` | 版本特有兼容补丁 | --- ## 版本路由优先级 1. URL 参数 `?phpversion=8.3` 2. `config/var-common.ini` 中的 `phpversion` 3. 当前 Web 服务器运行的 PHP 版本(自动匹配最近支持版本) --- ## 开源与版权 Copyright (C) 2026 **605011288@qq.com** - **MyPHPLiteMysqlAdmin v1.0** 由 **605011288@qq.com** 开发并发布 - 遵循 **GNU GPL v3 或更高版本**,可免费使用、修改与分发 --- ## 打包发布 ```bash cd /opt/homebrew/var/www/php_lite_admin ./run.sh restart && ./run.sh verify-live ./run.sh package git add . git commit -m "release: v1.0.0" git tag -a v1.0.0 -m "MyPHPLiteMysqlAdmin v1.0.0" git push origin master git push origin v1.0.0 ``` --- ## Git 仓库 远程地址:**git@gitee.com:605011288/phpmy_sql-lite.git** --- ## 反馈 问题与建议请联系:**605011288@qq.com**