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免费学习笔记(深入)”;
定义 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 = 1yaf.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框架如何使用?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1341123.html
微信扫一扫
支付宝扫一扫