Yaf 是用 C 编写的高性能 PHP 框架,需启用扩展、规范目录结构、配置 application.ini 并通过 index.php 启动;核心步骤包括安装 yaf.so/.dll、严格遵循大小写敏感的目录/文件命名约定、编写 Bootstrap 和控制器、配置并运行首个 Hello World。

Yaf 是一个用 C 语言编写的高性能 PHP 框架,以扩展形式存在,不依赖 Composer(但可配合使用),核心是轻量、快速、常驻内存。它不是“安装一个包”就完事,而是要启用 PHP 扩展 + 正确组织目录 + 配置驱动。下面说清楚怎么真正用起来。
装好 Yaf 扩展是前提
没这步,其他全白搭。PHP 必须加载 yaf.so(Linux/macOS)或 php_yaf.dll(Windows):
- 用 pecl install yaf 最省事(推荐 PHP 7.0+)
- Windows 用户需根据 phpinfo() 显示的 “Thread Safety” 选 TS/NTS 版本,手动复制 DLL 并在 php.ini 加 extension=php_yaf.dll
- Linux 编译安装要确保有 phpize、gcc、pcre-devel(否则报错 pcre.h 找不到)
- 装完别忘了在 php.ini 加上:extension=yaf.so 和可选配置如 yaf.environ=product
- 重启 Web 服务(Apache/Nginx)或 PHP-FPM,用 phpinfo() 确认 yaf 模块已出现
搭出标准目录结构
Yaf 对目录名和文件名大小写、位置有硬性约定,错一个就自动加载失败:
- public/:Web 可访问根目录,放 index.php(唯一入口)和 .htaccess(Apache)或 nginx 重写规则
- conf/application.ini:主配置文件,必须存在,INI 格式,定义环境、路径、数据库等
-
application/:核心代码目录,含:
- Bootstrap.php:继承 Yaf_Bootstrap_Abstract,做初始化(如注册插件、设置默认视图路径)
- controllers/Index.php:控制器,类名必须为 IndexController,方法名必须带 Action 后缀(如 indexAction)
- views/index/index.phtml:对应 IndexController::indexAction 的视图,路径名与控制器/动作名严格匹配
- models/(可选):放数据操作类,Yaf 不强制 ORM,通常自己用 PDO 封装
写好入口和配置文件
public/index.php 是整个应用的起点,不能写业务逻辑,只负责启动:
立即学习“PHP免费学习笔记(深入)”;
MixPHP 是一个 PHP 命令行模式开发框架;基于 Vega 驱动的 HTTP 可以同时支持 Swoole、WorkerMan、FPM、CLI-Server 生态,并且可以无缝切换;V3 是一个高度解耦的版本,整体代码基于多个独立的模块构建,即便用户不使用我们的脚手架,也可以使用这些独立模块,并且全部模块都支持原生开发。例如:你可以只使用 mix/vega 来搭配 laravel orm 使用

12
- 定义 APP_PATH(指向 application 目录上级)
- 实例化 Yaf_Application,传入 application.ini 路径
- 调用 ->bootstrap()->run(),顺序不能反
conf/application.ini 示例(production 环境):
[production] yaf.environ = "production" yaf.app.directory = APPLICATION_PATH "/application" yaf.dispatcher.throwException = 1 yaf.dispatcher.catchException = 1 ; 数据库示例(Yaf 本身不提供 DB 类,需自己集成) database.adapter = "Pdo_Mysql" database.params.host = "localhost" database.params.username = "root" database.params.password = "123456" database.params.dbname = "test" database.params.charset = "utf8"
跑通第一个 Hello World
别急着连库,先验证框架走通:
- controllers/Index.php 中写:echo “Hello, Yaf!”; 在 indexAction 里
- 确保 public/.htaccess 或 Nginx 重写把所有请求转给 index.php
- 访问 http://yourdomain.com/(或 localhost:8080),看到输出即成功
- 再升级:在 indexAction 里用 $this->getView()->assign(“msg”, “Hi”),视图里写 msg; ?>
基本上就这些。不复杂但容易忽略大小写、路径拼写、扩展未启用——卡住时优先查这三项。
以上就是php中yaf框架如何使用?的详细内容,更多请关注php中文网其它相关文章!
