Download the PHP package zapj/zap-php-framework without Composer
On this page you can find all versions of the php package zapj/zap-php-framework. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package zap-php-framework
Zap PHP Framework
轻量级 PHP MVC 框架,开箱即用,适合快速开发中小型 Web 应用。
环境要求
- PHP >= 7.4
- PDO 扩展(MySQL / PostgreSQL / SQLite)
- OpenSSL 扩展(可选,加密模块需要)
- Redis 扩展或 Predis(可选,Redis 缓存需要)
- Monolog(可选,高级日志功能需要)
安装
项目目录结构
快速开始
入口文件 public/index.php
路由
基本路由
路由参数约束
命名路由 & URL 生成
URL 生成会替换
{param}占位符并自动清理未填充的占位符。
路由组
资源路由
中间件
404 处理
静态方法速查
| 方法 | 说明 |
|---|---|
Route::get($pattern, $handler) |
GET / HEAD |
Route::post($pattern, $handler) |
POST |
Route::put($pattern, $handler) |
PUT |
Route::patch($pattern, $handler) |
PATCH |
Route::delete($pattern, $handler) |
DELETE |
Route::options($pattern, $handler) |
OPTIONS |
Route::any($pattern, $handler) |
所有方法 |
Route::match($methods, $pattern, $handler) |
指定多个方法 |
Route::resource($name, $controller, $opts) |
RESTful 资源 |
Route::group($attrs, $callback) |
路由分组 |
Router::url($name, $params) |
生成命名路由 URL |
Router::setNotFound($handler) |
404 处理器 |
路由缓存
编译路由并缓存,跳过每次请求的正则重建开销,显著提升路由分发性能。
自动模式(推荐)
Router 自动读取 config/cache.php 中的 default 驱动创建缓存,无需手动配置:
config/cache.php 配置
手动指定驱动
如需覆盖默认配置,可显式传入缓存驱动:
缓存管理
缓存失效
- 传入的
__FILE__(路由文件自身)的 修改时间 参与 hash 计算 - 路由文件一旦保存,缓存自动失效,下次请求重新编译
- 多个依赖文件可传入
$router->cacheRoutes(__FILE__, 'path/to/helpers.php', 'path/to/auth.php')
限制
闭包路由不可缓存。必须使用 'Controller@method' 字符串语法:
控制器
RESTful 控制器
请求 & 响应
获取请求数据
请求信息
文件上传
获取原始上传文件信息:
如需类型验证、大小限制、自动重命名等完整上传功能,请使用专门的 文件上传组件 (FileUpload)。
请求头
响应
重定向与下载
Session 会话
Flash 消息(一次性会话消息)
请求/响应 静态方法速查
Request(门面→ZapRequest):
| 方法 | 说明 |
|---|---|
Request::input($key, $default) |
通用输入(GET→POST→JSON) |
Request::query($key, $default) |
仅 GET |
Request::post($key, $default) |
仅 POST |
Request::json() |
JSON 请求体 |
Request::rawBody() |
原始请求体 |
Request::has($key) |
输入是否存在 |
Request::all() |
所有输入 |
Request::only($keys) |
仅取指定键 |
Request::except($keys) |
排除指定键 |
Request::method() / isPost() / ... |
请求方法 |
Request::url() / fullUrl() / path() |
URL 信息 |
Request::ip() / userAgent() / language() |
客户端信息 |
Request::headers($key, $default) |
请求头 |
Request::file($key) / hasFile($key) |
文件上传 |
Response(静态工厂):
| 方法 | 说明 |
|---|---|
Response::ok($data) |
200 JSON |
Response::created($data) |
201 JSON |
Response::noContent() |
204 |
Response::notFound($msg) |
404 JSON |
Response::forbidden($msg) |
403 JSON |
Response::unauthorized($msg) |
401 JSON |
Response::badRequest($msg) |
400 JSON |
Response::redirect($url, $code) |
重定向 |
Response::download($path, $name) |
文件下载 |
验证器
内置灵活的数据验证组件,支持链式调用、嵌套字段、自定义规则和自定义错误消息。
基本使用
链式配置 API
获取结果
嵌套字段 & 通配符
可用规则一览
| 规则 | 说明 | 参数示例 |
|---|---|---|
required |
字段必填 | 无 |
required_with |
指定的其他字段有值时必填 | ['other_field'] |
email |
有效邮箱地址 | 无 |
url |
有效 URL | 无 |
domain |
有效域名 | 无 |
ip |
有效 IP 地址(v4/v6) | 无 |
ipv4 |
有效 IPv4 地址 | 无 |
ipv6 |
有效 IPv6 地址 | 无 |
integer |
整数 | 无 |
double |
浮点数 | 无 |
numeric |
数字(整数或浮点) | 无 |
boolean |
布尔值(支持 0/1/true/false/yes/no/on/off) | 无 |
alpha |
纯字母 (a-z) | 无 |
alpha_num |
字母 + 数字 | 无 |
ascii |
纯 ASCII 字符 | 无 |
min |
数值最小值 | 10 |
max |
数值最大值 | 100 |
between |
数值范围 | [1, 120] |
length |
字符串长度范围 | [6, 20] |
length_min |
字符串最小长度 | 6 |
length_max |
字符串最大长度 | 20 |
range_length |
字符串长度范围(Length 别名) | [6, 20] |
in |
值必须在列表中 | ['admin', 'editor'] |
not_in |
值不能在列表中 | ['root', 'super'] |
regex |
正则匹配 | '/^\d{6}$/' |
date |
有效日期(默认 Y-m-d) | 'Y-m-d H:i:s' |
date_format |
日期格式(Date 别名) | 'd/m/Y' |
json |
合法 JSON 字符串 | 'array' / 'object' |
confirmed |
字段与 {field}_confirmation 一致 |
无 |
same |
与指定字段值相同 | 'email' |
different |
与指定字段值不同 | 'old_password' |
distinct |
数组值唯一无重复 | 无 |
is_array |
必须为数组 | 无 |
callback |
自定义验证函数或类 | function($name, $value) { ... } |
Callback 规则
扩展自定义规则
框架查找规则时,先搜索内置的
zap\validator\rules,再搜索通过addNamespace()注册的自定义命名空间。
国际化 (i18n)
框架内置灵活的国际化组件,支持多语言文件加载、参数替换、回退语言和复数翻译。
基本使用
语言文件
框架支持 PHP 和 JSON 两种格式,存放在 resources/languages/{locale}/ 目录下:
PHP 格式 — resources/languages/zh_CN/messages.php:
JSON 格式 — resources/languages/en/messages.json:
配置方法
参数替换
支持多种参数格式,通过 {key} 占位符替换:
复数翻译
语言文件中定义 .one / .other 后缀区分单复数:
中文通常不需要区分单复数,但框架保留此能力以支持英文等多语言场景。
动态消息注册
Helper 函数速查
| 函数 | 说明 |
|---|---|
__($key, $params) |
推荐用法:获取翻译(参数数组) |
trans($key, $params, $value) |
翻译(支持旧式 {value} 替换) |
trans_choice($key, $count, $params) |
复数翻译 |
HTTP 网络请求
框架提供 Requests(全功能)和 Curl(精简兼容)两种 HTTP 客户端,后者内部复用前者。
基本请求
Response 对象
所有请求方法返回 zap\net\Response 对象:
JSON 请求
自定义请求头
请求选项
文件上传
并发请求
全局配置
Curl 精简版(向后兼容,返回字符串)
错误处理
助手 (Helpers)
框架内置分页和 URL 生成助手,可在控制器和视图中直接使用。
分页器 (Pagination)
面向 API 和内页渲染的分页组件,支持数组元数据输出和 HTML 分页条生成。
基本使用
读取分页信息
URL 生成
API / JSON 元数据
HTML 渲染
链式配置
自定义渲染
URL 助手 (UrlHelper)
生成应用 URL,支持命名路由、控制器动作和安全连接。
基本使用
命名路由
控制器动作
URL 格式化
当前路由信息
激活状态检测
安全连接
数据库
配置
Query Builder(全参数化查询,防 SQL 注入)
基础 CRUD
DB Facade CRUD(表名+数据,自动参数化绑定)
WHERE 条件
聚合函数
JOIN
GROUP BY / HAVING / DISTINCT
排序
分页
大数据集
UNION
调试
DB Facade 原始 SQL 执行
直接 ZPDO 操作
Model(ActiveRecord 风格)
查找
实例操作
时间戳
序列化
事务
查询日志
多数据库连接
视图
Zap 提供轻量级原生 PHP 模板引擎,同时支持 Twig。具有布局继承、块系统、部分包含、HTML 转义等特性。
渲染视图
布局 & 块
部分包含
模板中的安全工具
全局共享数据
模板路径
内联模板
Twig 引擎
使用 .twig 扩展名自动切换为 Twig 渲染器:
错误模板
框架内置错误页面,位于 src/resources/views/errors/:
error.php— 通用错误exception.php— 异常详情(含代码高亮)
静态方法速查
| 方法 | 说明 |
|---|---|
View::make($name, $data) |
创建 View 实例 |
View::render($name, $data, $return) |
渲染并输出/返回 |
View::exists($name) |
检查模板是否存在 |
View::first(...$names) |
返回第一个存在的模板名 |
View::renderString($str, $data) |
渲染内联 PHP 字符串 |
View::share($key, $value) |
全局共享数据 |
View::paths($path) |
获取/添加搜索路径 |
View::addPath($path, $append) |
添加搜索路径 |
View::clearPaths() |
清空搜索路径 |
View::registerExtension($ext) |
注册自定义扩展名 |
View::autoIncludePath($bool) |
是否修改 include_path(默认关闭) |
配置
配置按需懒加载,同一文件只会被加载一次。
日志
Monolog 为可选依赖。未安装时,框架使用内置
SimpleLogger将日志写入文件或error_log。
缓存
Session & Flash 消息
Hooks 系统
WordPress 风格的过滤器和动作系统:
中间件
控制台命令
入口文件 console
创建命令
运行命令
命令配置 API
Input API
Output API
颜色样式
当终端支持颜色时,以下标签自动转为 ANSI 彩色输出(不支持时自动去除标签):
| 标签 | 效果 | 颜色 |
|---|---|---|
<info>...</info> |
信息 | 绿色 |
<success>...</success> |
成功 | 绿色 |
<error>...</error> |
错误 | 红色 |
<warning>...</warning> |
警告 | 黄色 |
<comment>...</comment> |
注释 | 黄色 |
<debug>...</debug> |
调试 | 灰色 |
<red>...</red> |
红色 | 红色 |
<green>...</green> |
绿色 | 绿色 |
<yellow>...</yellow> |
黄色 | 黄色 |
<blue>...</blue> |
蓝色 | 蓝色 |
<magenta>...</magenta> |
品红 | 品红 |
<cyan>...</cyan> |
青色 | 青色 |
<white>...</white> |
白色 | 白色 |
<gray>...</gray> |
灰色 | 灰色 |
设置环境变量
NO_COLOR=1可禁用彩色输出。
注册命令目录
命令命名规则
- 命令类放在注册的目录下,文件名即命令名
app/commands/HelloCommand.php→ 命令名HelloCommand- 运行时:
php console HelloCommand arg1 - 支持
vendor:CommandName格式(适合第三方包)
自定义默认命令
--version/-V为内置命令,直接输出版本号,无需注册。
Facades
URL Facade 速查
| 方法 | 说明 | 示例 |
|---|---|---|
Url::base($url?) |
获取/设置基础 URL | Url::base('https://example.com') |
Url::home() |
首页 URL | Url::home() |
Url::full() |
完整请求 URL(含协议主机路径) | Url::full() |
Url::previous() |
上一页 Referer | Url::previous() |
Url::current() |
当前请求 URI 路径 | Url::current() |
Url::route($name, $params, $absolute) |
命名路由 URL | Url::route('profile', ['id' => 1]) |
Url::action($action, $query, $path) |
控制器动作 URL | Url::action('UserController@show', [], ['id'=>5]) |
Url::to($format, $params, $query) |
格式化 URL | Url::to('/user/{id}/edit', ['id'=>10]) |
Url::isActive($action, $class?) |
路由激活状态检测 | Url::isActive('/admin*', 'nav-active') |
Url::secure($path) |
生成 HTTPS URL | Url::secure('/admin') |
Url::controller() |
当前控制器名 | Url::controller() |
Url::method() |
当前方法名 | Url::method() |
Url::getRouteData($name?) |
路由数据 | Url::getRouteData('profile') |
辅助函数
HTML 构建器
流式链式调用,自动转义属性值防止 XSS。
照片处理 (Image)
基于 PHP GD 扩展的图片处理组件,支持链式调用、格式转换、滤镜、水印和 EXIF 自动旋转。
需要 PHP GD 扩展。JPEG/PNG/GIF 为 GD 内置支持,WebP 需要 GD 编译时启用。
基本使用
缩放 & 裁剪
旋转 & 翻转
滤镜
水印 & 叠加
文字
格式转换
输出 & 保存
复制 & 资源管理
元数据
完整示例:用户头像处理
文件上传组件 (FileUpload)
提供文件上传处理、验证和保存功能,支持单文件与多文件上传,内置类型检查、大小限制和自动重命名。
基本使用
多文件上传
自定义文件名
MIME 类型验证
UploadedFile 对象
错误码说明
| 错误码 | 常量 | 说明 |
|---|---|---|
| 0 | UPLOAD_ERR_OK |
上传成功 |
| 1 | UPLOAD_ERR_INI_SIZE |
超过 php.ini upload_max_filesize |
| 2 | UPLOAD_ERR_FORM_SIZE |
超过表单 MAX_FILE_SIZE |
| 3 | UPLOAD_ERR_PARTIAL |
文件仅部分上传 |
| 4 | UPLOAD_ERR_NO_FILE |
没有文件被上传 |
| 6 | UPLOAD_ERR_NO_TMP_DIR |
缺少临时文件夹 |
| 7 | UPLOAD_ERR_CANT_WRITE |
文件写入磁盘失败 |
| 8 | UPLOAD_ERR_EXTENSION |
文件上传被扩展停止 |
链式配置
所有配置方法均支持链式调用:
完整示例:用户头像上传
配置方法速查
| 方法 | 说明 |
|---|---|
setAllowedTypes(array) |
设置允许的扩展名,如 ['jpg', 'png'] |
setAllowedMimes(array) |
设置允许的 MIME 类型,如 ['image/jpeg'] |
setMaxSize(int) |
设置最大文件大小(字节),0 = 不限制 |
setAutoRename(bool) |
设置是否自动重命名(默认 true) |
setNameCallback(callable) |
设置文件名生成回调 |
upload(key, dir, name?) |
上传单个文件,返回 UploadedFile |
uploadMultiple(key, dir, name?) |
上传多个文件,返回 UploadedFile[] |
getFile() |
获取最近上传的第一个文件 |
getFiles() |
获取最近上传的所有文件 |
加密
默认使用 AES-256-CBC 算法。
错误处理
框架内置错误处理器,根据 config/config.php 中的 debug 配置切换行为:
URL Rewrite
Apache
Nginx
License
MIT
All versions of zap-php-framework with dependencies
ext-pdo Version *
ext-curl Version *
ext-mbstring Version *
ext-json Version *
ext-openssl Version *
ext-dom Version *
ext-simplexml Version *