PHPackages                             ankewk/zerophp - 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. ankewk/zerophp

ActiveLibrary[Framework](/categories/framework)

ankewk/zerophp
==============

mini php framework

v1.1(9mo ago)11151MITPHPPHP &gt;=5.6.0

Since Nov 8Pushed 9mo ago1 watchersCompare

[ Source](https://github.com/ankewk/ZeroPHP)[ Packagist](https://packagist.org/packages/ankewk/zerophp)[ RSS](/packages/ankewk-zerophp/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (2)Dependencies (2)Versions (4)Used By (0)

ZeroPHP
=======

[](#zerophp)

PHP Framework

---

设计思想
----

[](#设计思想)

```
简而不失其华。
ZeroPHP这个微框架的设计思想。
天下武功，唯快不破。
在Web领域JS的快速发展下，使得H5等Web应用的REST API程度越来越高。
如果你只是做一些非大型Web项目的。
例如基于PHP做微信Campain、H5 APP、Min Web Application等。
ZeroPHP就是你的绝佳选型框架。
它很轻，并且很灵活。因为它遵循PSR-4。
你可以非常自由的选择Composer你需要的包。
让你的程序更优雅，更容易维护。
当然如果你的程序很迷你，那么极少的文件加载无疑会是性能上的提升。

```

---

框架
--

[](#框架)

```
ZeroPHP是一个PHP轻框架。
适合小型项目的快速搭建。
Route MVC PDO CLI
集成EasyCSV EasyApi
开发者 : Anke

```

---

安装
--

[](#安装)

```
v1.0 release

```

---

使用 Docker 运行
------------

[](#使用-docker-运行)

本指南将帮助您使用 Docker 快速启动 ZeroPHP 项目。

### 前提条件

[](#前提条件)

- 已安装 Docker 和 Docker Compose

### 启动步骤

[](#启动步骤)

1. **克隆项目**

    ```
    git clone https://github.com/ankewk/ZeroPHP.git
    cd ZeroPHP
    ```
2. **启动容器**使用 Docker Compose 启动服务：

    ```
    docker-compose up -d
    ```

    这将启动两个容器：

    - MySQL 容器 (端口 33306)
    - Apache + PHP 容器 (端口 8888)
3. **访问应用**在浏览器中访问：

    ```
    http://localhost:8888

    ```
4. **数据库连接**

    - 主机: mysql (在容器内部) 或 localhost (从宿主机连接)
    - 端口: 33306
    - 用户名: root
    - 密码: (空)
    - 数据库名: zero

### 停止服务

[](#停止服务)

```
 docker-compose down
```

### 数据持久化

[](#数据持久化)

- MySQL 数据存储在 `mysql_data` 卷中，即使删除容器，数据也会保留
- 项目文件通过绑定挂载同步，对本地文件的更改会立即反映到容器中

### 注意事项

[](#注意事项)

1. 确保端口 33306 和 8888 在您的主机上没有被占用
2. 首次启动时，MySQL 容器会初始化数据库，可能需要几秒钟时间
3. 如果需要重新构建 Web 容器，可以使用： ```
    docker-compose up -d --build
    ```

---

多环境配置
-----

[](#多环境配置)

### 环境介绍

[](#环境介绍)

ZeroPHP 支持三种环境配置：

1. **开发环境 (dev)**：本地开发使用，默认启用调试模式
2. **测试环境 (uat)**：用户验收测试使用，禁用调试模式
3. **生产环境 (prod)**：正式上线使用，禁用调试模式

### 配置文件结构

[](#配置文件结构)

配置文件位于 `conf/env/` 目录下：

```
conf/
├── env/
│   ├── config_dev.php    # 开发环境配置
│   ├── config_uat.php    # 测试环境配置
│   └── config_prod.php   # 生产环境配置
├── config.php            # 主配置文件，负责加载环境配置
└── route.php

```

### 如何切换环境

[](#如何切换环境)

#### 方法 1：设置环境变量 (推荐)

[](#方法-1设置环境变量-推荐)

在启动应用前设置 `APP_ENV` 环境变量：

```
# 开发环境
export APP_ENV=dev

# 测试环境
export APP_ENV=uat

# 生产环境
export APP_ENV=prod
```

#### 方法 2：修改配置文件

[](#方法-2修改配置文件)

在 `conf/config.php` 文件中直接修改默认环境：

```
// 默认环境为开发环境
$env = getenv('APP_ENV') ?: 'dev';  // 将 'dev' 改为 'uat' 或 'prod'
```

### 自定义配置

[](#自定义配置)

您可以根据需要在各环境的配置文件中添加或修改配置项。所有配置项会被加载到 `$config` 数组中，并通过 `define` 函数定义为常量。

### 注意事项

[](#注意事项-1)

1. 生产环境请确保 `debug` 设置为 `false`，避免暴露敏感信息
2. 数据库密码等敏感信息建议通过环境变量设置，不要硬编码在配置文件中
3. 新增配置项时，请确保在所有环境的配置文件中都添加相应的配置

---

自动路由功能
------

[](#自动路由功能)

ZeroPHP框架支持自动路由机制，无需手动配置路由即可访问控制器和方法。

### 最近更新

[](#最近更新)

- 将TestController中的helloZero方法迁移到IndexController中，现在可以通过`/index/hello`访问该方法。

### 自动路由规则

[](#自动路由规则)

1. URL路径格式: `/控制器名/方法名`
2. 控制器名会自动转换为大写开头，并添加`Controller`后缀
3. 方法名会自动添加`Zero`后缀
4. 默认为`Index`控制器和`index`方法

### 示例

[](#示例)

- 访问 `/test/hello` 会自动路由到 `TestController` 的 `helloZero` 方法
- 访问 `/` 会自动路由到 `IndexController` 的 `indexZero` 方法

### 注意事项

[](#注意事项-2)

1. 自动路由会在手动配置的路由之后生效，若两者冲突，以手动配置的路由为准
2. 控制器文件名和类名必须遵循`XxxController.php`和`XxxController`的命名规范
3. 方法名必须以`Zero`结尾

框架结构
----

[](#框架结构)

```
- app ：项目
 - Model ：数据模型
 - Controller : 控制器
 - View ：视图
- public ：公共资源
- conf : 配置文件
- config.php : 配置
- route.php : 路由
- db : 数据库
- zero : 内核
- vendor : 扩展

```

---

命令行工具
-----

[](#命令行工具)

```
执行 php zerophp
 _____                    _____ __    __ _____
/__  /  ___ __   ______  |  _  |  |  |  |  _  |
  / /  / _ \| |_/ /| _ | | (_) |  |--|  | (_) |
 / /__/  __/| |__/ |(_)| |  ___|  |--|  |  ___|
/____/\___/ |_|    |___| |_|   |__|  |__|_|

Welcome to ZeroPHP Command
Author Anke  Version v1.0 2018-11-08

Model
  model:create             Create new Model file in app

View
  view:create              Create new View file in app

Controller
  controller:create        Create new controller file in app

Orm
  orm:create:name          Create the crate table json file of name in your db path
  orm:alter:name           Create the alter table json file of name in your db path

```

---

应用
--

[](#应用)

```
1.ZeroPHP 文档与使用
https://github.com/ankewk/ZeroPHPDoc
2.ZeroCms 基于ZeroPHP开发的开源微信CMS系统
https://github.com/ankewk/ZeroCms
3.ZeroCms 基于ZeroPHP开发的博客系统
https://github.com/ankewk/ZeroBlog

```

---

FAQ
---

[](#faq)

```
Q:为什么ZeroPHP框架看起来很小?
A:因为它的初衷是微框架，当然它是基于组件化的，你可以在它的基础上构建适合你的大型框架结构。
比如说你觉得laravel的migration很好用，那么你可以在ZeroPHP里面加入Doctrine。
具体可以参考ZeroCms、ZeroBlog这两个项目，就是用doctrine来构建数据持久化。

```

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance58

Moderate activity, may be stable

Popularity13

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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

Every ~2468 days

Total

2

Last Release

276d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4768a4846d9aa9122594984e7d68b4ba7f69067b44f9041d53faa48791cc5bfb?d=identicon)[ankewk](/maintainers/ankewk)

---

Top Contributors

[![ankewk](https://avatars.githubusercontent.com/u/17630270?v=4)](https://github.com/ankewk "ankewk (27 commits)")

### Embed Badge

![Health badge](/badges/ankewk-zerophp/health.svg)

```
[![Health](https://phpackages.com/badges/ankewk-zerophp/health.svg)](https://phpackages.com/packages/ankewk-zerophp)
```

###  Alternatives

[pestphp/pest

The elegant PHP Testing Framework.

11.4k59.5M14.2k](/packages/pestphp-pest)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[laravel/browser-kit-testing

Provides backwards compatibility for BrowserKit testing in the latest Laravel release.

5139.4M286](/packages/laravel-browser-kit-testing)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[kohana/unittest

PHPUnit integration for running unit tests on the Kohana framework

11040.8k17](/packages/kohana-unittest)[yiisoft/yii-swagger

OpenAPI Swagger for Yii Framework

31116.9k](/packages/yiisoft-yii-swagger)

PHPackages © 2026

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