欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-15 17:42:18
...

一、概述

作为一名 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