php yaf框架(一) 小白入门 -- 安装 mac

一、概述

作为一名 android 程序,之前有学习了解php,并部署过thinkphp 玩耍。现在需要学习下php 的yaf 框架,参与到php的开发中。之前对于后端的框架和语言纯属横向兴趣的接触,所以像yaf 这种文档比较不完善的框架 操作起来还是有一些生涩。 在这里进行记录,小白在部署与学习过程中遇到的问题。

二、环境

学习阶段直接部署在mac上,系统是 mac os hign sierra。
web 服务采用的是 MAMP的集成安装方式:https://www.mamp.info/en/
讲真,还是第一次遇到 mac 安装比win 安装复杂的情况

三、实操小白的安装步骤

官方github指导:https://github.com/laruence/yaf

$/path/to/phpize
$./configure --with-php-config=/path/to/php-config
$make && make install

然而都不会这么顺利

1、找到phpsize

sudo find / -name phpize

2、执行path/to/phpize 生成configure

liweideMacBook-Pro:yaf-master leon$ /Applications/MAMP/bin/php/php7.1.12/bin/phpize 
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

然而报错了:Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

3、安装autoconf: brew install autoconf

4、执行配置,和安装

$./configure --with-php-config=/path/to/php-config

提示权限不够的话,要用sudo

5、make && make install

Installing shared extensions:

/Applications/MAMP/bin/php/php7.1.12/lib/php/extensions/no-debug-non-zts-20160303/

make: *** [install-modules] Error 1

其实这里有两步,可以分开 make 一步, make install 一步。
我的情况是 make 没问题, make install 没成功。make install 就是自动copy yaf.so ( make后在modules目录下)到指定目录(/Applications/MAMP/bin/php/php7.1.12/lib/php/extensions/no-debug-non-zts-20160303/)。 也没深究为什么没成功。我就手动copy 过去了。

6、 php -m 找有没有成功部署扩展插件 yaf

注意这里的php 指的是,web 服务下的php 而不是mac 系统自带的

7、创建sample

【链接】生成框架模板
https://github.com/laruence/yaf/tree/master/tools/cg

###Usage

//这句生成的最小模板框架是  无命名空间的
php yaf_cg Sample
will generator folder "Sample" under output:

$ ls output/Sample/
application/  conf/  index.php  readme.txt


//这个是有命名空间的 然而并没有生效。操作下来还是无命名空间的
php yaf_cg Sample '' n
will generate a namespace example

8、配置php.in

php的配置文件是 php.in
在我的电脑是:/Applications/MAMP/bin/php/php7.1.12/conf/php.in
添加下面的句子

extension=yaf.so
yaf.use_namespace=0
yaf.environ=develop

;这里的命名空间关掉是针对模板生成的小框架,开会提示:
Fatal error: Uncaught Error: Class 'Yaf_Application' not found in /Users/leon/work_space/work_php/sample/index.php:7 Stack trace: #0 {main} thrown in /Users/leon/work_space/work_php/sample/index.php on line 7

你可能感兴趣的:(Php)