PHPackages                             phpframe-project/template - 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. phpframe-project/template

ActiveProject[Framework](/categories/framework)

phpframe-project/template
=========================

The template with PHPFrame Framework

0.1.0(today)01↑2900%MITPHPPHP ^8.1

Since Jun 14Pushed todayCompare

[ Source](https://github.com/phpframe-project/template)[ Packagist](https://packagist.org/packages/phpframe-project/template)[ RSS](/packages/phpframe-project-template/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (3)Versions (2)Used By (0)

PHPFrame 项目模板
=============

[](#phpframe-项目模板)

基于 [PHPFrame](https://github.com/phpframe-project/phpframe) 框架的项目模板，支持 FPM / CLI（ReactPHP 常驻内存）/ Shell 三模式运行。

快速开始
----

[](#快速开始)

```
# 创建项目
composer create-project phpframe-project/template my-project
cd my-project

# 环境配置
cp .env.example .env
# 编辑 .env 配置数据库、Redis 等

# 启动开发服务器
php -S localhost:8000 -t public/

# 启动 CLI 常驻服务器（支持多 Worker）
php cli.php server start --host=0.0.0.0 --port=8000 --worker=4

# 执行 Shell 命令
php shell.php default/test name=user1 email=user1@example.com
```

目录结构
----

[](#目录结构)

```
my-project/
├── app/
│   ├── Controllers/
│   │   ├── Default/              # HTTP 控制器（继承 BaseController）
│   │   │   ├── Controller.php    # 控制器基类（可添加 before/after 钩子）
│   │   │   └── DefaultController.php
│   │   └── Shell/                # Shell 控制器（继承 BaseShell）
│   │       ├── DefaultShell.php
│   │       └── DatabaseShell.php
│   ├── Library/                  # 自定义类库
│   ├── Middleware/               # 中间件
│   │   ├── AuthMiddleware.php
│   │   └── CorsMiddleware.php
│   ├── Models/                   # 数据模型（Eloquent）
│   │   └── User.php
│   └── Services/                 # 业务服务
│       └── UserService.php
├── config/                       # 配置文件（自动加载）
│   ├── app.php                   # 应用配置
│   ├── database.php              # 数据库配置
│   ├── cache.php                 # 缓存配置
│   ├── log.php                   # 日志配置
│   └── exception.php             # 异常处理配置
├── database/
│   └── field_template.php        # 模型字段生成模板
├── public/
│   └── index.php                 # FPM 入口
├── resources/
│   └── templates/                # Twig 模板
├── routes/
│   ├── default.php               # HTTP 路由
│   └── shell.php                 # Shell 路由
├── runtime/                      # 运行时目录（日志、缓存，自动创建）
├── cli.php                       # CLI 入口
├── shell.php                     # Shell 入口
├── .env.example                  # 环境变量示例
└── composer.json

```

三种运行模式
------

[](#三种运行模式)

### FPM 模式

[](#fpm-模式)

传统 PHP-FPM 或内置开发服务器，适合传统 Web 部署：

```
php -S localhost:8000 -t public/
```

### CLI 模式（ReactPHP 常驻内存）

[](#cli-模式reactphp-常驻内存)

高性能常驻内存服务器，支持多 Worker 进程：

```
# 前台运行
php cli.php server start --host=0.0.0.0 --port=8000 --worker=4

# 守护进程
php cli.php server start --host=0.0.0.0 --port=8000 --worker=4 --daemon

# 停止
php cli.php server stop
```

### Shell 模式

[](#shell-模式)

命令行任务执行，适合定时任务、数据迁移、批量处理：

```
php shell.php default/test name=user1 email=user1@example.com
php shell.php database/tables
php shell.php database/describe table_name
php shell.php database/build-structure
php shell.php database/build-model-fields
```

核心用法
----

[](#核心用法)

### 路由

[](#路由)

在 `routes/default.php` 中定义 HTTP 路由：

```
use PHPFrame\Facades\Route;
use App\Controllers\Default\DefaultController;

// 闭包
Route::get('/', function() {
    return 'Hello World';
});

// 控制器方法
Route::get('/users', [UserController::class, 'listAction']);
Route::post('/users', [UserController::class, 'createAction']);
Route::put('/users/{id}', [UserController::class, 'updateAction']);
Route::delete('/users/{id}', [UserController::class, 'deleteAction']);

// 路由组
Route::group('/api', function () {
    Route::get('/users', [UserController::class, 'listAction']);
});
```

在 `routes/shell.php` 中定义 Shell 路由：

```
Route::shell('default/test', [DefaultShell::class, 'testAction']);
```

### 控制器

[](#控制器)

HTTP 控制器继承 `BaseController`：

```
namespace App\Controllers\Default;

use PHPFrame\BaseController;

class UserController extends Controller
{
    public function listAction()
    {
        $page = $this->getParam('page', 1);
        $users = Db::table('users')->paginate(15, ['*'], 'page', $page);
        return $this->json(['code' => 0, 'data' => $users]);
    }

    public function createAction()
    {
        $data = $this->request->post();
        // 验证并创建...
        return $this->json(['code' => 0, 'message' => 'created']);
    }
}
```

Shell 控制器继承 `BaseShell`：

```
namespace App\Controllers\Shell;

use PHPFrame\BaseShell;

class DefaultShell extends BaseShell
{
    public function testAction()
    {
        $params = $this->getParams();
        $this->output("参数: " . json_encode($params));
        $this->log("执行测试命令");
    }
}
```

### 中间件

[](#中间件)

```
use PHPFrame\Facades\Route;
use App\Middleware\AuthMiddleware;

// 全局中间件
Route::middleware(new CorsMiddleware());

// 路由级中间件
Route::registerMiddleware('auth', new AuthMiddleware());
Route::handlerMiddleware('App\Controllers\UserController@profile', ['auth']);
```

### 门面

[](#门面)

```
use PHPFrame\Facades\Log;
use PHPFrame\Facades\Db;
use PHPFrame\Facades\Cache;
use PHPFrame\Facades\Config;

Log::info('User logged in', ['user_id' => 123]);
$users = Db::table('users')->get();
Cache::set('key', 'value', 3600);
$name = Config::get('app.name');
```

### 依赖注入

[](#依赖注入)

```
// 单例服务
app()->set('my_service', function ($c) {
    return new MyService($c->get('db'));
});

// 原型服务（每次解析返回新实例）
app()->prototype('request', function ($c) {
    return Request::createFromGlobals();
});

// 使用
$service = app('my_service');
```

### 配置

[](#配置)

配置文件放在 `config/` 目录下，自动加载。支持环境覆盖：

```
config/app.php                # 基础配置
config/app.production.php     # 生产环境覆盖（APP_ENV=production 时自动合并）

```

```
// 读取
config('app.name');
config('database.connections.default.host', '127.0.0.1');

// 运行时修改（不持久化）
app('config')->set('app.debug', true);
```

### 缓存

[](#缓存)

```
use PHPFrame\Facades\Cache;

Cache::set('key', 'value', 3600);
$value = Cache::get('key');
Cache::delete('key');
Cache::deleteByPattern('users:*');  // 模式删除（Redis）
```

### 数据库

[](#数据库)

```
use PHPFrame\Facades\Db;

// 查询构建器
$users = Db::table('users')->where('active', 1)->get();

// 事务
Db::transaction(function () {
    Db::table('users')->insert([...]);
    Db::table('orders')->insert([...]);
});
```

### 日志

[](#日志)

```
use PHPFrame\Facades\Log;

Log::info('Info message');
Log::error('Error message', ['context' => $data]);
Log::warning('Warning message');
```

### 模板渲染

[](#模板渲染)

```
// 在控制器中
return $this->render('/default/test.twig', ['name' => 'PHPFrame']);
```

### JSON 响应

[](#json-响应)

```
return $this->json(['code' => 0, 'data' => $users]);
```

### 重定向

[](#重定向)

```
return $this->redirect('/login', 302);
```

环境变量
----

[](#环境变量)

复制 `.env.example` 为 `.env` 并按需修改：

变量说明默认值`APP_NAME`应用名称PHPFrame`APP_ENV`环境（local/production）local`APP_DEBUG`调试模式true`DB_HOST`数据库主机127.0.0.1`DB_DATABASE`数据库名phpframe`CACHE_DRIVER`缓存驱动（redis/file）redis`REDIS_HOST`Redis 主机127.0.0.1环境要求
----

[](#环境要求)

- PHP &gt;= 8.1
- ext-pdo
- ext-pcntl（多 Worker 模式）
- ext-redis（Redis 缓存驱动）

文档
--

[](#文档)

完整文档请参阅 [PHPFrame 文档](https://github.com/phpframe-project/phpframe/tree/main/docs)。

License
-------

[](#license)

MIT

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance100

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity32

Early-stage or recently created project

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

0d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/243573?v=4)[rlee](/maintainers/rleecn)[@rleecn](https://github.com/rleecn)

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/phpframe-project-template/health.svg)

```
[![Health](https://phpackages.com/badges/phpframe-project-template/health.svg)](https://phpackages.com/packages/phpframe-project-template)
```

###  Alternatives

[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k38.6M289](/packages/laravel-dusk)[pinguo/php-msf

Pinguo Micro Service Framework For PHP

1.7k4.2k](/packages/pinguo-php-msf)[nineinchnick/edatatables

Grid widget for the Yii Framework, wrapper for the DataTables jQuery plugin

173.2k](/packages/nineinchnick-edatatables)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
