yaf使用入门
程序员文章站
2024-02-15 17:37:29
...
1.安装
# 创建一个yaf文件夹
mkdir ~/yaf
# 切换到该文件夹
cd ~/yaf
# 下载yaf压缩包
wget http://pecl.php.net/get/yaf-3.0.5.tgz
# 解压压缩包
tar -xf yaf-3.0.5.tgz
# 切换到yaf文件夹
cd yaf-3.0.5
# 编译安装,参考:http://php.net/manual/zh/install.pecl.phpize.php
phpize
./configure --with-php-config=/usr/bin/php-config7.0
make
# 把.so文件放到扩展目录
sudo cp modules/yaf.so /usr/lib/php/20151012/
# 设置权限
sudo chmod 644 /usr/lib/php/20151012/yaf.so
# 生成编译配置文件
sudo vi /etc/php/7.0/mods-available/yaf.ini
# 文件写入以下内容
; configuration for php common module
; priority=10
extension=yaf.so
# 设置配置文件软连接到php加载额外扩展配置
cd /etc/php/7.0/fpm/conf.d
# fpm支持
sudo ln -s /etc/php/7.0/mods-available/yaf.ini ./20-yaf.ini
cd /etc/php/7.0/cli/conf.d
# cli支持
sudo ln -s /etc/php/7.0/mods-available/yaf.ini ./20-yaf.ini
# 如有报错把.so文件copy到这个目录下面一份
/var/lib/php/modules/7.0/registry
/var/lib/php/modules/7.0/fpm/enabled_by_maint
/var/lib/php/modules/7.0/cli/enabled_by_maint
2.检查是否安装成功
print_r(phpinfo());
3.项目结构
+ public
|- index.php //入口文件
|- .htaccess //重写规则
|+ css
|+ img
|+ js
+ conf
|- application.ini //配置文件
+ application
|+ controllers
|- Index.php //默认控制器
|+ views
|+ index //控制器
|- index.phtml //默认视图
|+ modules //其他模块
|+ library //本地类库
|+ models //model目录
|+ plugins //插件目录
4.配置项
config/application.ini
注! APP_PATH定义在public的index.php中
application.directory=APP_PATH "/application/" # 应用的绝对路径
application.ext=php # PHP脚本的扩展名
application.bootstrap=Bootstrapplication.php # Bootstrap路径(绝对路径)
application.library=application.directory + "/library" # 本地(自身)类库的绝对目录地址
application.baseUri=NULL # 在路由中, 需要忽略的路径前缀, 一般不需要设置, Yaf会自动判断.
application.dispatcher.defaultModule=index # 默认的模块
application.dispatcher.throwException=True # 在出错的时候, 是否抛出异常
application.dispatcher.catchException=False # 是否使用默认的异常捕获Controller, 如果开启, 在有未捕获的异常的时候, 控制权会交给ErrorController的errorAction方法, 可以通过$request->getException()获得此异常对象
application.dispatcher.defaultController=index # 默认的控制器
application.dispatcher.defaultAction=index # 默认的动作(action)
application.view.ext=phtml # 视图模板扩展名
application.modules=Index # 声明存在的模块名, 请注意, 如果你要定义这个值, 一定要定义Index Module
application.system.*=*通过这个属性, 可以修改yaf的runtime configure, 比如application.system.lowcase_path, 但是请注意只有PHP_INI_ALL的配置项才可以在这里被修改, 此选项从2.2.0开始引入
5.简单的搭建一个测试modules
目录结构
application
|+modules
|+Test
|+controllers
|+Test.php
|+views
|+test
application/modules/Test/controllers/Test.php
<?php
/**
* Created by PhpStorm.
* User: he
* Date: 17-10-12
* Time: 上午9:54
*/
class TestController extends Yaf_Controller_Abstract
{
public function indexAction()
{
$this->getView()->assign("content", "Hello World");
}
}
views/test/index.phtml
<html>
<head>
<title>Hello World</title>
</head>
<body>
<?php echo $content;?>
</body>
</html>
6.路由
config/application.ini
可直接访问
http://localhost/test/test/index
还有很多更灵活的路由配置方法参考路由协议
7.路由协议