• Yaf框架的配置


    http://www.laruence.com/manual/yaf.ini.html    //先看一下惠新宸鸟哥yaf官网的配置说明

    我们可以在php.ini中定义开发环节配置项,把本地开发设置成develop、测试环境配置成test、生产环境配置成product。代码如下,默认的是product

    [yaf]
    yaf.environ=develop

    通过设置运行环境,在项目中可以通过ini_get(‘yaf.environ’)获取环境参数。

    yaf配置文件一般都放在项目的conf文件夹下,yaf application实例化的时候需要传递一个配置文件路径,配置文件叫application.ini,先看下application.ini的结构:

    [common]
    ; 通用配置
     
    [product : common]
    ; 生产环境配置
     
    [test : common]
    ; 测试环境配置
     
    [develop : common]
    ; 开发环境配置

    配置例子如下代码

    application.debug = TRUE
    ;当意外的错误发生的时候,开启/关闭异常抛出。 当开启的时候,Yaf将会抛出异常而不是触发可捕捉的错误。
    ;1抛出异常. 0获取可以调试的错误
    application.dispatcher.throwException = 0
    ;开启/关闭自动异常捕获功能
    ;1 Yaf会将所有未捕获的异常交给Error Controller的Error Action来处理. 0直接打印
    application.dispatcher.catchException = 0
    ;如果 throwException = 0,那么 catchException是什么都无所谓了. 因为catchException是捕获异常的.
    ;如果 throwException = 1, catchException的值决定异常处理方式.但catchException为1,必须定义Error Controller,否则还会报这个错误.
    ;
    ;redis.namespace = "TEST_"
    ;redis.servers.host = '127.0.0.1'
    ;redis.servers.port = '6379'
    ;redis.servers.password = ''
    ;redis.servers.weight = 1
    
    Redis.namespace = "TEST_"
    Redis.servers.host = '127.0.0.1'
    Redis.servers.port = '6379'
    Redis.servers.password = ''
    Redis.servers.weight = 1
    
    
    sessRedis.host = '127.0.0.1'
    sessRedis.port = '6379'
    sessRedis.timeout = 0.5
    sessRedis.db = 9
    sessRedis.auth = ''
    
    DB_TYPE="mysql"
    DB_HOST="127.0.0.1"
    DB_PORT="3306"
    DB_CHARSET="utf8"
    DB_NAME="kmjd"
    DB_USER="root"
    DB_PWD="root"

    配置除了节之外,节和节之间还有继承关系。

    例如[product : common]就表示product的配置会继承common的配置。

    yaf在实例化应用传递配置文件路径和运行环境:

    define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../'));
    $app = new YafApplication(APPLICATION_PATH . "/conf/application.ini", ini_get('yaf.environ'));

    这样当项目运行环境在develop下的时候,会优先读取[develop : common]内的配置,如果没有则会从[common]中获取。

    YafApplication::app()->getConfig();         //在项目中任何地方都可以通过次代码获取application.ini中的配置。

    事实上该例中可以不用传递ini_get(‘yaf.environ’)参数,在实例化的时候yaf会自行读取php.ini中的yaf.environ参数。但如果是其它的配置文件,则需要传递该参数。代码如下

    $app  = new Yaf_Application(APP_PATH . "/conf/application.ini");

    代码中获取配置项的方法如下

    $this->_config = Yaf_Application::app()->getConfig()->get("Redis");
    $this->_host = $this->_config['servers']['host'];
    $this->_port = $this->_config['servers']['port'];
    $this->_db = $this->_config['servers']['db'];

    当然,除了用yaf指定的application.ini配置之外,把所有的配置都归结到一个文件中,也可以分开配置,yaf中提供了YafConfigIni类来处理这些额外的配置文件。

    $config = new YafConfigIni(APPLICATION_PATH . '/conf/url.ini', ini_get('yaf.environ'));

    在实际读取的时候,最好能设置一个静态变量保存读取到的配置,避免重复申请系统open函数调用。如下:

    static $config = null;
    if ($config === null) {
        $config = new YafConfigIni(APPLICATION_PATH . '/conf/url.ini', ini_get('yaf.environ'));
    }

    详细可以参考yaf扩展示例Bootstrap中的getUrlIniConfig方法。

  • 相关阅读:
    Java中splite的用法与小技巧
    android asmack调用MultiUserChat.getHostedRooms方法出现空指针的异常解决方案
    android java.lang.ExceptionInInitializerError
    二维码生成与返回客户端
    微信查询所有关注该公众号的用户
    连接数据库报错:句柄无效
    httpclient POST请求(urlencoded)
    小程序——获得用户敏感信息
    作用域浅析
    小程序开发——统一请求方法
  • 原文地址:https://www.cnblogs.com/wt645631686/p/7725126.html
Copyright © 2020-2023  润新知