一、Yaf框架简介

Yaf,全称 Yet Another Framework,是一个C语言编写的PHP框架,是一个以PHP扩展形式提供的PHP开发框架, 相比于一般的PHP框架,

它更快,更轻便。它提供了Bootstrap, 路由, 分发, 视图, 插件, 是一个全功能的PHP框架。

二、Yaf的特点

  1. 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销.
  2. 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存.
  3. 更短的内存周转周期, 提高内存利用率, 降低内存占用率.
  4. 灵巧的自动加载. 支持全局和局部两种加载规则, 方便类库共享.
  5. 高性能的视图引擎.
  6. 高度灵活可扩展的框架, 支持自定义视图引擎, 支持插件, 支持自定义路由等等.
  7. 内建多种路由, 可以兼容目前常见的各种路由协议.
  8. 强大而又高度灵活的配置文件支持. 并支持缓存配置文件, 避免复杂的配置结构带来的性能损失.
  9. 在框架本身,对危险的操作习惯做了禁止.
  10. 更快的执行速度, 更少的内存占用.

Yaf提供了完善的API, 并支持Bootstrap和插件机制.

整体流程图如下:

Linux 下安装

Yaf的安装和配置官方手册:
Yaf的安装前的一些准备:
Yaf只支持PHP5.2及以上的版本. 并支持最新的PHP5.3.3 [经过测试,其实最新的PHP5.5也是可以正常运行,本安装教程就是基于centos6.3 x64 & PHP 5.5 最新版演示]
Yaf需要SPL的支持. SPL在PHP5中是默认启用的扩展模块
Yaf需要PCRE的支持. PCRE在PHP5中是默认启用的扩展模块

好了,感觉太罗里吧嗦,上面的要求你都达到了,那么就接着做这几个步骤:
1. 去Pecl下载 Yaf的发布包 [2.2.9],并且解压,并进去 yaf-2.2.9 源码目录

wget http://pecl.php.net/get/yaf-2.2.9.tgz &&
tar zxvf yaf-2.2.9.tgz && cd yaf-2.2.9

2.接着依次执行:

$PHP_BIN/phpize
./configure --with-php-config=$PHP_BIN/php-config
make
make install

[解释一下:$PHP_BIN 就是你php的安装目录的bin目录路径,比如我的php安装路径是在:/usr/local/php/bin/ ,那么我的就是这样执行,我就一次性给写了,如下:]

/usr/local/php/bin/phpize && ./configure --with-php-config=/usr/local/php/bin/php-config &&
make && make install

执行完你看到了这么一句,说明你第一步Yaf编译部分是ok了.

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/

那么我们可以看看这个目录下到底有些什么

ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/

可以看到 yaf.so php扩展也已经帮我们编译好了,所以接下来我们就开始要回到php去找php.ini的配置文件了.

vi /usr/local/php/etc/php.ini

然后在php.ini中载入yaf.so

extension=yaf.so

重启PHP.

/etc/init.d/php-fpm restart

那么到底我们安装到底有没有成功呢?我们就测试一下.
vi /usr/local/nginx/html/index.php 写上一句 phpinfo();
,然后你运行之后,你发现如下图,那么恭喜你安装成功,就开始你的yaf之旅吧.

yaf

windows 下安装[win下目前已经编译的最高版本好像支持到php 5.4.x]
windows 下安装相对比linux简单多了. 但是也是要求php最低版本不能低于PHP 5.2

1.首先去下载windows下面的编译好的dll [yaf.dll]
如何选择那个版本的dll尼? 嘿嘿,这个时候,就要用到我们的 phpinof()看一下你的php版本是多少。我的是php 5.3.13 所以我选择是php_yaf-2.1.9-x86-5.3.13-zts-nodebug.dll ,那么有两个5.3.13版本的dll我们又该选择那个,还是得看phpinfo() 如果 Thread Safety enabled 项为 enabled 的话就选择 zts 版本,反之应该就是 nts 了.

2.然后就是找到F:/wamp/bin/php/php5.3.13/ext/ (根据你自己系统路径)目录下把刚才下载的 php_yaf-2.1.9-x86-5.3.13-zts-nodebug.dll复制重命名为 yaf.dll。然后打开php.ini 加上 extension=yaf.dll 重启一下服务.就可以了.[在这里啰嗦一下,关于Apache或者nginx是运行那个php.ini这里也是得根据phpinfo里的信息来确定,比如Wampserver,x64(在Apache/bin目录下)和x86的版本就是不一样]

yaf windows php 5.3.13

yaf windows php 5.3.13

需要注意: 不管是在linux还是在win下,有时候步骤都对了,但是phpinfo还是没有出现的时候,你要检查一下你是用的是那个 php.ini 文件,你可以在页面搜索一下.然后顺便看看 extension_dir 指向的目录是那个.Loaded Configuration File 看看他指向的是那个php.ini 就修改那个php.ini如何开启 Yaf 的命名空间功能,文档里默认是关闭的

yaf.use_namespace 0 PHP_INI_SYSTEM 开启的情况下, Yaf将会使用命名空间方式注册自己的类, 比如Yaf_Application将会变成YafApplication

所以如果我们要用命名空间,那么就修改一下php.ini就可以
添加

[yaf]
yaf.use_namespace = 1

重启一下php 服务就可以了。
ok,至此,yaf安装完成,是不是很简单.