PHPackages                             geligaoli/singlephp-ex - 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. geligaoli/singlephp-ex

ActiveLibrary[Framework](/categories/framework)

geligaoli/singlephp-ex
======================

Single File PHP Framework

2.0.5(5y ago)7273MITPHPPHP &gt;=5.3.0

Since Sep 1Pushed 5y ago1 watchersCompare

[ Source](https://github.com/geligaoli/SinglePHP-Ex)[ Packagist](https://packagist.org/packages/geligaoli/singlephp-ex)[ Docs](https://github.com/geligaoli/SinglePHP-Ex)[ RSS](/packages/geligaoli-singlephp-ex/feed)WikiDiscussions library Synced 2d ago

READMEChangelog (5)DependenciesVersions (6)Used By (0)

SinglePHP-Ex 2.x
================

[](#singlephp-ex-2x)

### 简介

[](#简介)

[SinglePHP-Ex 2.x](https://github.com/geligaoli/SinglePHP-Ex) 是一个单文件PHP框架，提供了精简的MVC模式，简单系统的快速开发。看一眼代码和demo的内容，即可上手使用。

**基于SinglePHP-Ex的项目demo项目，请见 [Proejct](https://github.com/geligaoli/SinglePHP-Ex/tree/project) 分支。**

目前 [SinglePHP-Ex](https://github.com/geligaoli/SinglePHP-Ex) 由 geligaoli 开发维护，如果你希望参与到此项目中来，可以到[Github](https://github.com/geligaoli/SinglePHP-Ex)上Fork项目并提交Pull Request。

[SinglePHP-Ex](https://github.com/geligaoli/SinglePHP-Ex) 是参考了 [SinglePHP](https://github.com/leo108/SinglePHP) 为原型，并整合了 [PhpPoem](https://github.com/cleey/phppoem)、Thinkphp早期 部分代码。

#### 功能的增强有：

[](#功能的增强有)

```
加入了namespace的支持，默认namespace的路径和文件路径一致。采用psr-4标准。

加入了composer的支持。保持了单文件php的简单，又可以composer安装组件。

路由规则支持PATHINFO的伪静态方式，也同时支持普通QueryString的访问。

加入View的include模板功能，根据文件时间来自动生成编译后的模板缓存文件。

数据库操作改为PDO，可以在php7.x执行。支持建立多数据库连接。支持多种数据库的分页查询。

加入数据库表Model，参考thinkphp，简化对单表的增删改查的操作。

拦截php的异常错误，DEBUG状态下，在页面显示详细错误trace，方便调试。

加入了命令行模式，方便写脚本用。

整个框架不超过800行。简单明了。

```

#### composer 安装

[](#composer-安装)

环境要求PHP版本&gt;=5.3，无其它库依赖。

```
composer require "geligaoli/singlephp-ex:^2.0.4"

```

### 文档

[](#文档)

#### nginx的pathinfo方式配置

[](#nginx的pathinfo方式配置)

假如项目部署在 /www/nginx/default目录下。设置open\_basedir可提高安全性。

```
root /www/nginx/default/Public;
index index.html index.php;

location / {
    try_files $uri $uri/ =404;
}

if (!-e $request_filename) {
    rewrite  ^/(.*)$  /index.php/$1  last;
}

location ~ \.php($|/) {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param PHP_ADMIN_VALUE "open_basedir=/www/nginx/default/:/usr/share/php:/tmp/:/proc/";
}

```

fastcgi\_params 文件中增加

```
fastcgi_param  PATH_INFO          $fastcgi_path_info;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  PATH_TRANSLATED    $document_root$fastcgi_path_info;

```

#### View模板语法

[](#view模板语法)

```
{$vo['info']}           // {$..}输出变量
{:func($vo['info'])}    // {:..}调用函数
{:Url("Index/Index")}   // 自动按PATH_MODE来生成url

     // 循环
    // 判断

        // 包含其它文件

'APP_URL'       // 项目所在的URL根路径
'MODULE_NAME'   // 当前的模块名
'ACTION_NAME'   // 当前方法名

        // 直接使用php语法

```

### Demo

[](#demo)

在线演示：整理中。见 demo 目录下。

#### 目录结构

[](#目录结构)

```
┌── App                                 #业务代码文件夹，可在配置中指定路径
│   ├── Cache                           #缓存，该目录及以下 **需要写权限**
│   │   ├── Tpl                         #编译后的view模板缓存
│   │   └── File                        #文件缓存，暂未用
│   ├── Controller                      #控制器文件夹
│   │   └── IndexController.php
│   ├── Lib                             #其他库文件
│   │   └── Test.php
│   ├── Log                             #日志文件夹，**需要写权限**
│   ├── Model                           #数据库模型
│   │   └── IndexModel.php
│   ├── Service                         #Service服务
│   │   └── IndexService.php
│   ├── View                            #模板文件夹
│   │   ├── Index                       #对应Index控制器
│   │   │   └── Index.php
│   │   └── Public
│   │       ├── footer.php
│   │       └── header.php
│   ├── vendor                          #composer安装目录，包括SinglePHP-ex
│   └── Functions.php                   #一些共用函数
├── composer.json                       #composer配置文件
└── Public                              #网站根目录
    ├── index.php                       #入口文件
    ├── img                             #图片文件目录
    ├── js                              #javascript文件目录
    └── css                             #css样式表目录

```

#### 最简目录结构

[](#最简目录结构)

```
┌── App                                 #业务代码文件夹，可在配置中指定路径
│   ├── Controller                      #控制器文件夹
│   │    └── IndexController.php
│   └── vendor                          #composer安装目录，包括SinglePHP-ex
├── composer.json                       #composer配置文件
└── Public                              #网站根目录
    └── index.php                       #入口文件

```

#### 采用单独文件部署的最简目录

[](#采用单独文件部署的最简目录)

```
┌── App                                 #业务代码文件夹，可在配置中指定路径
│   └── Controller                      #控制器文件夹
│        └── IndexController.php
├── SinglePHP.php                       #SinglePHP文件
└── Public                              #网站根目录
    └── index.php                       #入口文件

```

同时修改SinglePHP.php，取消对autoload的注释

```
//includeIfExist(APP_FULL_PATH.'/Functions.php');
//spl_autoload_register(array('SinglePHP\SinglePHP', 'autoload'));

```

#### Hello World

[](#hello-world)

只需增加3个文件，即可输出hello world。

入口文件：index.php

```

或者
{$content}

```

在浏览器访问index.php，应该会输出

```
Hello World

```

#### 页面无输出的检查

[](#页面无输出的检查)

请检查 Cache、Log 这两个目录及子目录是否存在且可写入。

```
  App
  ├── Cache                           #缓存，该目录及以下 **需要写权限**
  │   └── Tpl                         #编译后的view模板缓存，**需要写权限**
  └── Log                             #日志文件夹，**需要写权限**

```

### 原 SinglePHP 简介

[](#原-singlephp-简介)

SinglePHP是一个单文件PHP框架，适用于简单系统的快速开发，提供了简单的路由方式，抛弃了坑爹的PHP模板，采用原生PHP语法来渲染页面,同时提供了widget功能，简单且实用。

目前SinglePHP由[leo108](http://leo108.com)开发维护，如果你希望参与到此项目中来，可以到[Github](https://github.com/leo108/SinglePHP)上Fork项目并提交Pull Request。

### 原 PhpPoem 简介

[](#原-phppoem-简介)

PhpPoem, 如诗一般简洁优美的PHP框架
PhpPoem, a simple and beautiful php framework, php will be like poet.

Home:
Author: Cleey

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 56% 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 ~0 days

Total

4

Last Release

2080d ago

### Community

Maintainers

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

---

Top Contributors

[![leo108](https://avatars.githubusercontent.com/u/1551716?v=4)](https://github.com/leo108 "leo108 (42 commits)")[![geligaoli](https://avatars.githubusercontent.com/u/9813794?v=4)](https://github.com/geligaoli "geligaoli (33 commits)")

---

Tags

frameworkbasicSinglePHP

### Embed Badge

![Health badge](/badges/geligaoli-singlephp-ex/health.svg)

```
[![Health](https://phpackages.com/badges/geligaoli-singlephp-ex/health.svg)](https://phpackages.com/packages/geligaoli-singlephp-ex)
```

###  Alternatives

[yiisoft/yii2-app-basic

Yii 2 Basic Project Template

7031.8M7](/packages/yiisoft-yii2-app-basic)

PHPackages © 2026

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