# 安装 Yaf
***
> 本章假设你已经安装了 LNMP 开发环境(PHP 版本不低于7.0),直接从安装 Yaf 拓展开始叙述
因为 Yaf 是用 C 语言开发的 PHP 框架,也可以理解为是 PECL 拓展。所以跟平常遇到的用 PHP 开发的框架不太一样,例如 ThinkPHP5,Laravel 是直接下载可用或者通过 Composer 安装使用。Yaf 需要先安装拓展后才可以正常使用。
首先我们来介绍一下怎样安装 Yaf 拓展
## 安装
最新版本的 Yaf 最低支持 PHP7.0,所以我们需要保证当前 PHP 环境为 7.0 版本以上,支持 PHP5.X 的 Yaf 最高版本为2.3.4,笔者不再推荐使用老版本的 Yaf。既然 Yaf 是以高性能著称,PHP7 也是以高性能著称,为何不让强强联合?
### 1. 编译安装
编译安装首先需要通过 Git 下载源码
首先下载 Yaf 编译安装包,打开(https://github.com/laruence/yaf/releases)
~~~
$ > wget -c https://github.com/laruence/yaf/archive/yaf-3.0.5.tar.gz
$ > tar xzvf yaf-3.0.5.tar.gz && cd yaf-3.0.5
$ > phpize
$ > ./configure
$ > make
$ > sudo make install
~~~
接下来需要手动修改`php.ini`文件,来加载`yaf.so`文件
### 2. pecl 安装
直接通过 pecl 命令来进行 Yaf 安装,安装成功后会自动配置`php.ini`文件,不需要手动加载`yaf.so`
~~~
$ > pecl install yaf
~~~
安装完成后使用命令来检查安装是否成功
~~~
$ > php --ri yaf
~~~
得到 Yaf 版本号和配置细节则说明安装成功,如下
~~~
$ > php --ri yaf
yaf
yaf support => enabled
Version => 3.0.5
Supports => http://pecl.php.net/package/yaf
Directive => Local Value => Master Value
yaf.library => no value => no value
yaf.action_prefer => Off => Off
yaf.lowcase_path => Off => Off
yaf.use_spl_autoload => Off => Off
yaf.forward_limit => 5 => 5
yaf.name_suffix => On => On
yaf.name_separator => no value => no value
yaf.st_compatible => Off => Off
yaf.environ => product => product
yaf.use_namespace => Off => Off
~~~
## 项目配置
使用 Yaf 脚手架工具来生成基础框架
1.进入到Yaf源码包中脚手架工具所在目录
~~~
$ > cd yaf-3.0.5/tools/cg/
~~~
2.用脚手架工具生成基础框架代码
~~~
$ > php yaf_cg Yaf_First
~~~
Yaf_First 为项目名称,读者可以自行定义
3. 将生成的代码复制到生成环境目录
~~~
$ > cp -r ./output/Yaf_First/* /home/wwwroot/default/
~~~
- 作者自序
- 本书约定
- 安装 Yaf
- 框架配置
- 使用 Bootstrap
- 集成 Composer
- 配置 IDE 支持 Yaf 代码提醒
- 多模块配置
- 命名空间支持
- 错误调试
- 请求与响应
- 输入变量
- 输出 JSON
- Ajax 请求
- 数据库操作
- PDO 操作数据库
- 使用 Laravel-Eloquent ORM 操作数据库
- 视图模板
- 使用 Yaf 自带模板引擎
- 使用 Twig 模板引擎
- 接口开发
- RESTful
- 网页开发
- SESSION
- Cookie
- 命令行开发
- 爬虫开发
- 写代码之前
- 建立爬行目标抽象类
- 实现具体爬行目标类
- 实现爬虫工厂类
- 编写异步操作方法
- 用 Redis 保存爬行结果
- WebSocket 实时获取结果
- 定时器更新爬行结果
- 优化程序
- 框架实践
- 引入类库
- 多模块继承与引入
- Let's Encrypt 免费 https 证书申请
- 附录A:常见 Bootstrap 操作
- 附录B:Yaf 配置项