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

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.路由协议

yaf-路由协议

相关标签: yaf