yaf使用入门

来源:互联网 发布:电气女生知乎 编辑:程序博客网 时间:2024/06/05 19:37

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.phpphpize./configure --with-php-config=/usr/bin/php-config7.0make# 把.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=10extension=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.inicd /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 Moduleapplication.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-路由协议

原创粉丝点击