深入展示 XPHP 的技术特性与优势,解答「为什么选择 XPHP」
控制器 / 模型 / 视图职责清晰;支持多应用、多入口、多主题,一套代码承载多个站点,适合企业官网、后台管理、API 服务等场景的灵活拆分。
php xphpcli make:app index
php xphpcli make:app api面向对象的链式 API,支持 where / join / union / group / having / 分页 / 事务 / 子查询 / 锁,兼顾可读性与灵活性。
$list = db('user')
->where('status', 1)
->order('id', 'desc')
->paginate(10);模型层内置自动验证、自动处理、自动过滤,配合前后置钩子与自动时间戳,让数据层代码更简洁规范。
class User extends Model {
protected string $table = 'user';
protected array $validate = [
['username', 'required|unique:user.username', '用户名必填且唯一'],
];
}
$model = new User();
$model->save(['username' => 'xphp']);简洁标签 + 布局 / 包含,支持自定义分隔符与正则替换,模板编译缓存提升渲染性能。
{layout name="layout.html"}
{foreach $list as $vo}
<p>{$vo.title}</p>
{/foreach}全局 / 框架 / 控制器三级中间件,支持登录校验、CSRF、日志等,控制器内声明式配置。
protected array $middleware = [
'auth' => ['only' => ['edit', 'del']],
];50+ 内置规则,支持自定义正则、闭包、exists / unique 数据库校验,满足绝大多数业务校验需求。
validate([
['email', 'required|email', '邮箱格式错误'],
['mobile', 'required|mobile|unique:user.mobile', '手机号无效'],
], input('post.'))->show();CSRF 校验、XSS 过滤、SQL 预处理、Cookie 加密,中间件三级拦截,从输入到输出全链路防护。
// 表单令牌验证
csrf_field();
// 输入过滤
$data = input('post.');File / Redis 双驱动,缓存片段(Widget)与 flash 闪存开箱即用,轻松提升读取性能。
cache('key', 'value', 3600);
$data = cache_make('list', fn() => db('user')->select());
session_flash('captcha', $code);SQL、请求、文件、内存、耗时一目了然,配合错误处理与日志,让问题定位更高效。
图形验证码、SMTP 邮件、文件上传、缩略图开箱即用,按需扩展业务能力。
extend('captcha::make'); // 验证码
$files = extend('upload::save'); // 上传
extend('thumb::getThumb', ['/upload/a.jpg', 100, 100]);