图片 1

首位国人PHP开发组成员以及他的Yaf

By admin in 使用交流 on 2020年1月15日

PHP开发组终于有了国人参与,  最近, Laruence(
做PHP的同学一定很熟悉他了,
他的博客风雪之隅发表了很多PHP源代码分析和扩展开发相关的文章.

Yaf的优点

他使用PHP扩展开发的PHP框架Yaf, 也进入了PHP官方扩展库(),  这个框架借鉴目前最流行的PHP开发框架Zend Framework的设计, 迁移成本很低. 不过目前Yaf的英文文档还很不完善:, 中文文档稍微完善一些:http://yaf.laruence.com/manual/
Yaf的优点:
  1. 用C语言开发的PHP框架, 相比原生的PHP, 几乎不会带来额外的性能开销.
2. 所有的框架类, 不需要编译, 在PHP启动的时候加载, 并常驻内存.
3. 更短的内存周转周期, 提高内存利用率, 降低内存占用率.
4. 灵巧的自动加载. 支持全局和局部两种加载规则, 方便类库共享.
5. 高性能的视图引擎.
6. 高度灵活可扩展的框架, 支持自定义视图引擎, 支持插件, 支持自定义路由等等.
7. 内建多种路由, 可以兼容目前常见的各种路由协议.
8. 强大而又高度灵活的配置文件支持. 并支持缓存配置文件, 避免复杂的配置结构带来的性能损失.
9. 在框架本身,对危险的操作习惯做了禁止.
10.更快的执行速度, 更少的内存占用.
    
Yaf现在在国外已经被很多人关注, 包括Zend Framework的作者, 也在twitter上推荐了Yaf: 
julienPauli:
pecl/yaf finally made it : A framework, inspired by ZendFramework, entirely writen

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

(文/cnbeta)    

流程图

Yaf提供了完善的API, 并支持Bootstrap和插件机制. 整体流程图如下:

图片 1

image.png

安装条件

  • Yaf只支持PHP5.2及以上的版本. 并支持最新的PHP5.3.3
  • Yaf需要SPL的支持. SPL在PHP5中是默认启用的扩展模块
  • Yaf需要PCRE的支持. PCRE在PHP5中是默认启用的扩展模块

https://github.com/laruence/yaf

安装

依赖库

install gcc gcc-c++ make automake autoconf

下载

https://github.com/laruence/yaf

安装

phpize
./configure
make
make install

参考:

自己的开发机
/appServer/php5.6/bin/phpize
./configure --with-php-config=/appServer/php5.6/bin/php-config

配置

[yaf]
extension=yaf.so

重启服务

/etc/init.d/php-fpm restart

查看

[root@bogon html]# php -m  | grep yaf
yaf

或者

phpinfo(); // 函数查看

代码生成工具 cg

cd ~/php-yaf-master/tools/cg
php yaf_cg newapp #newapp 是生成的目录名

注意: PHP 5.4.X-5.6.X 应该安装 yaf version 2.3.4

https://segmentfault.com/a/1190000000655886

nginx配置

根据自己需求进行调整

server {

    listen       80;
    server_name  yaf.test.com;

    root   html/yaf.test.com;
    index  index.html index.htm index.php;

    if (!-e $request_filename) {
        rewrite ^/(.*) /index.php?$1 last;
    }

    location ~ .php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2020 大奖888网页版登陆 版权所有