mac Yaf框架编译安装

PHP 879浏览 评论

Yaf框架想必大家都是知道的,有的小伙伴可能已经使用过了。不知道大家有没有体验到Yaf的优越性呢?

下面引用官网的文档介绍下Yaf的特点:

1、Yaf是一个C语言编写的PHP框架。

如果非要解释下Yaf,那么官网是这样解释的:

剑的三层境界:

  • 一是手中有剑,心中亦有剑;

  • 二是手中无剑,心中有剑;

  • 三是手中无剑,心中亦无剑

在和其他用PHP写的PHP框架来比的话, Yaf就是剑的第二层境界. 框架不在你手中, 而在PHP的"心"中.

目前PHP的框架层出不穷, 其中不乏很多优秀的框架, 比如Zend官方支持的Zend Framework, Yii, ci等等. 但在这繁多的框架也就造成了公司内多种框架的业务产品. 这些框架之间的不同, 也就导致了多种版本的类库, 框架, 约定, 规范,,,,

那么, 为什么现在开源社区没有一个成熟的用PHP扩展开发的框架呢?

用PHP扩展写PHP框架的难点

  1. 难于开发. 要完成一个PHP扩展的PHP框架, 需要作者有C背景, 有PHP扩展开发背景, 更要有PHP框架的设计经验.

  2. 目标用户群小. 现在国内很多中小型站都是使用虚拟主机, 并不能随意的给PHP添加扩展, 所以这些大部分的中小型企业, 个人博客的用户就无法使用.

  3. 维护成本高. 要维护PHP扩展, 不仅仅需要精通于C的开发和调试, 更要精通于Zend API, 并且升级维护的周期也会很长.

那既然这样, 为什么还要用PHP扩展来开发框架呢, 或者说, 这可行么?

用PHP扩展写PHP框架的可行性

  1. 扩展逻辑相对比较稳定, 一般不易变化. 把它们抽象出来, 用扩展实现, 不会带来额外的维护负担.

  2. 框架逻辑复杂, 自检耗时耗内存都比较可观, 而如果用扩展来实现, 就能大幅减少这部分对资源的消耗.


    上面引用官网的文档很好的诠释了Yaf,接下来我们使用mac来安装一下,虽然官网文档写得很清楚如何安装了,但是我在安装的时候还是遇到了一些问题!下面主要介绍如何解决。安装命令如下:

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

命令说明:PHP_BIN是php的bin目录路径,记得替换。

  1. 下载Yaf源码包,可以通过github下载也可以通过PHP扩展库 pecl 下载【戳我下载Yaf最新版本】,有如下版本,我是下载的最新版本,3.0.7这个版本需要php7支持。不然make make install会报错。

    image.png

  2. 解压,Cd到Yaf源码目录(我解压后放在/Application/MAMP/hthost目录)

       cd /Application/MAMP/hthost/yaf3.0

  3. 执行命令

$PHP_BIN/phpize //需要替换PHP_BIN
//我的命令是
/Applications/MAMP/bin/php/php7.1.8/bin/phpize

 遗憾的是报错了:如下


image.png

可以很明白的看出错误信息,说是 autoconf没有找到,那么我们需要安装它。


4.安装autoconf    需要先安装Homebrew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 

安装完成之后

brew install wget

5.再执行

/Applications/MAMP/bin/php/php7.1.8/bin/phpize

6.编译配置,记得替换:PHP_BIN

./configure --with-php-config=$PHP_BIN/php-config
//替换过的命令
./configure --with-php-config=/Applications/MAMP/bin/php/php7.1.8/bin/php-config

7.执行make & make install

make && make install

在这里说明一下,我下载的yaf3.0使用过php5.6编译安装过,报如下错误

image.png

如果有如下错误的同学,确认下是否是版本的问题。在这里我就不做过多的解释。

8.编译安装完成,会生成yaf.so扩展文件。

image.png


9.php.ini 配置文件中加入yaf.so扩展即可

extension=yaf.so

10.phpinfo() 活着php -m 查看扩展是否成功

image.png


这样就成功在自己的mac下载安装了yaf框架了,yaf框架没有orm,在后面的文章中我会封装一套简单的orm,后面会共享源码给大家参考。

本文连接:http://www.phpbloger.com/article/61.html 文章都为原创,转载请注明出处!

相关文章