# 安裝 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 配置項