# longphp
**Repository Path**: flower-careful/longphp
## Basic Information
- **Project Name**: longphp
- **Description**: 一个简单的PHP框架
- **Primary Language**: PHP
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: https://www.longphp.com
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2026-08-24
- **Last Updated**: 2026-08-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🐉 Longphp
[](https://www.php.net/)
[]()
[](http://license.coscl.org.cn/MulanPSL2)
[]()
[]()
> 🚀 一款轻量级、零依赖的 PHP MVC 开发框架,支持 CLI 和 WEB 双模式运行
---
## 📑 目录
- [✨ 主要特性](#-主要特性)
- [📁 项目结构](#-项目结构)
- [🏗️ 架构说明](#️-架构说明)
- [⚙️ 环境要求](#️-环境要求)
- [🚀 快速开始](#-快速开始)
- [📖 使用说明](#-使用说明)
- [💻 代码示例](#-代码示例)
- [🔧 内置工具](#-内置工具)
- [⚠️ 注意事项](#️-注意事项)
- [📄 许可证](#-许可证)
---
## ✨ 主要特性
| 特性 | 说明 |
|:---:|:---|
| 🎯 | **零依赖** - 不依赖 Composer,纯原生 PHP 实现,开箱即用 |
| 🏗️ | **MVC 架构** - 清晰的 Controller → Service → Model 三层分离 |
| 🔄 | **双模式支持** - CLI 命令行 + WEB HTTP 统一控制器编写方式 |
| 💉 | **依赖注入** - 基于反射的自动 DI 容器,构造器自动注入 |
| 📂 | **自动加载** - 命名空间直接映射文件路径,无需手动 require |
| 📝 | **日志系统** - 按日期分文件,支持 info/error/warn 三级日志 |
| 🌐 | **cURL 封装** - 内置单个/并发 HTTP 请求工具 |
| ⏳ | **进度条** - CLI 模式下的可视化进度展示工具 |
---
## 📁 项目结构
```
longphp/
├── 📄 public/
│ └── index.php # 🌐 WEB 模式入口
├── 📄 cli.php # 💻 CLI 模式入口
├── 📁 config/
│ ├── init.php # ⚙️ 初始化配置
│ └── constant.php # 📌 常量定义
├── 📁 controller/
│ ├── baseController.php # 🎛️ 控制器基类
│ ├── cli/ # 💻 CLI 控制器目录
│ └── web/ # 🌐 WEB 控制器目录
├── 📁 service/
│ ├── baseService.php # ⚙️ 服务基类
│ └── *.php # 📦 业务服务类
├── 📁 model/
│ └── *.php # 🗄️ 数据模型类
├── 📁 class/
│ ├── db/
│ │ └── MySQL.php # 🗄️ 数据库操作类
│ ├── log/
│ │ └── Log.php # 📝 日志类
│ └── ProgressBar.php # ⏳ 进度条工具
├── 📁 function/
│ ├── init.php # 🚀 初始化函数
│ └── help.php # 🔧 辅助函数
├── 📄 .env.online # 🌍 线上环境配置
├── 📄 .env.test # 🧪 测试环境配置
└── 📄 LICENSE # 📜 木兰宽松许可证 v2
```
### 📂 目录说明
| 目录 | 说明 |
|:---:|:---|
| `public/` | WEB 模式入口目录,配置 Web 服务器指向此目录 |
| `controller/` | 控制器层,包含 `cli/` 和 `web/` 两个子目录 |
| `service/` | 服务层,处理业务逻辑 |
| `model/` | 模型层,负责数据库操作 |
| `class/` | 核心类库,包含数据库、日志等基础组件 |
| `function/` | 全局函数,包含初始化和辅助工具 |
| `config/` | 配置目录,包含框架初始化配置 |
---
## 🏗️ 架构说明
### 🔄 MVC 分层架构
```
┌─────────────────────────────────────────────────────────────┐
│ 🌐 请求入口 │
├─────────────────────┬───────────────────────────────────────┤
│ 📄 public/ │ 💻 cli.php │
│ index.php │ │
└─────────┬───────────┴───────────────────┬───────────────────┘
│ │
▼ ▼
┌─────────────────────────────────────────────────────────────┐
│ 🎛️ Controller 控制器层 │
│ • 接收用户请求 │
│ • 调用 Service 处理业务 │
│ • 返回响应结果 │
└─────────────────────────────┬───────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ ⚙️ Service 服务层 │
│ • 处理业务逻辑 │
│ • 数据转换和验证 │
│ • 调用 Model 获取数据 │
└─────────────────────────────┬───────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 🗄️ Model 模型层 │
│ • 数据库 CRUD 操作 │
│ • 数据表映射 │
│ • SQL 查询构建 │
└─────────────────────────────┬───────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 🗄️ MySQL 数据库 │
└─────────────────────────────────────────────────────────────┘
```
### 🔀 请求处理流程
#### WEB 模式
```
用户请求 → public/index.php → 解析 PATH_INFO → 路由到控制器 → 依赖注入 → 执行 run() → 返回响应
```
#### CLI 模式
```
命令行参数 → cli.php → 解析参数 → 路由到控制器 → 依赖注入 → 执行 run() → 输出结果
```
---
## ⚙️ 环境要求
### 📋 基础要求
| | 推荐配置 | 最低配置 |
|:-----:|:-------:|:-------:|
| **PHP** | 8.1 | 8.0 |
| **MySQL** | 5.7+ | 5.6+ |
### 📦 PHP 扩展
| 扩展名 | 用途 | 是否必须 |
|:------:|:---:|:-------:|
| `mysqli` | MySQL 数据库连接 | ✅ 是 |
| `curl` | HTTP 请求 | ✅ 是 |
| `mbstring` | 多字节字符串处理 | ✅ 是 |
| `json` | JSON 数据处理 | ✅ 是 |
---
## 🚀 快速开始
### 📥 1. 获取代码
```bash
# 克隆项目
git clone https://github.com/your-username/longphp.git
# 进入项目目录
cd longphp
```
### ⚙️ 2. 环境配置
```bash
# 复制环境配置文件
cp .env.online .env
# 编辑配置文件(根据实际情况修改)
vim .env
```
**📝 .env 配置说明:**
```ini
[default]
db_default=mysql
web_default_controller=index
[log]
path_dir=log
[mysql]
host=127.0.0.1
port=3306
database=your_database
user=your_username
pass="your_password"
```
### 🌐 3. 配置 Web 服务器
#### Nginx 配置示例
```nginx
server {
listen 80;
server_name localhost;
root /path/to/longphp/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
```
#### Apache 配置示例
```apache
🐉 Longphp - 轻量级 PHP 开发框架
Made with ❤️ by Longphp Developers