`
hudeyong926
  • 浏览: 2034880 次
  • 来自: 武汉
社区版块
存档分类
最新评论

YII 配置文件,不同的环境不同的配置

 
阅读更多

用YIIFramework的库开发

....
Yii::createWebApplication($config); //没有run

Yii::import(class1,true),在将class1类文件路径存储时,同时include该文件

注意:你也可以将配置文件分为多个文件, // 例如db.product.php,db.development.php,params.development.php等等

main.php

<?php
// 取消下行的注释,来定义一个路径别名
// Yii::setPathOfAlias('local','path/to/local-folder');

// 这是 Web 应用配置的主体部分。任何可写的
// CWebApplication 属性可以在这里配置。
$config = array(
    // protected 目录的基础路径
    // 使用 Yii::app()->basePath 来访问
    'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..',

    // 应用的名字
    // 使用 Yii::app()->name 来访问
    'name' => 'My website',

    //路径别名
    // 可以是应用内部的路径,也可以是外部资源
    'aliases' => array(
        'myExternalFramework' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'myexternalframework'
    ),
    //维护程序时,这样子所有的请求转发到一个地方
    'catchAllRequest' => array('site/all'),

    //如何在应用程序处理请求之前执行一段操作?当然这个function方法要存在index.php
    'onBeginRequest' => 'function',

    //controller path
    'controllerMap' => array('myController' => 'myExternalFramework.controllers.MyController'),

    // 默认的 controller
    'defaultController' => 'site',

    // 用户语言(for Locale)
    'language' => 'es',

    //信息和视图的语言
    'sourceLanguage' => 'es',
    'timeZone' => 'Asia/Shanghai',
    'theme' => 'default',
    // 使用的字符集
    'charset' => 'utf-8',

    // 预载入的应用组件
    'preload' => array('log'),

    // 自动载入的类
    'import' => array(
        'application.models.*',
        'application.components.*',
    ),

    // 可以使用 Yii::app()->params['paramName'] 访问的应用级别的参数
    'params' => require(dirname(__FILE__) . '/params.php'),
    // 在 params.php 中你需要返回这个数组:Yii::app()->setParams设置的只能用Yii::app()->params['xxx']这种数组的方式访问
    // return array('adminEmail'=>'info@example.com');

    // 应用组件的配置
    'components' => array(
        // assets, 参考www.yiiframework.com/doc/api/CAssetManager
        'assetManager' => array(
            // 改变磁盘上的路径
            'basePath' => dirname(__FILE__) . '/../../assets/',
            // 改变url
            'baseUrl' => '/web/assets/'
        ),
        'request' => array(
            'enableCsrfValidation' => true, //如果防止post跨站攻击
            'enableCookieValidation' => true, //防止Cookie攻击
        ),
        // 缓存
        'cache' => array(
            'class' => 'A cache class, like: system.caching.CApcCache',
        ),
        'session' => array( //  memcache session cache
            'class' => 'CCacheHttpSession',
            'autoStart' => 1,
            'sessionName' => 'frontend',
            'cookieParams' => array('lifetime' => '3600', 'path' => '/', 'domain' => '.test.com', 'httponly' => '1'),
            'cookieMode' => 'only',
        ),
        // 你可以使用 scriptMap 来配置脚本来自哪里。
        // 对于一个生产环境的配置,如下
        'clientScript' => array(
            'scriptMap' => array(
                'register.js' => 'site.min.js',
                'login.js' => 'site.min.js',
            ),
        ),
        // 对于一个开发环境,可以这样做
        'clientScript' => array(
            'scriptMap' => array(
                'register.js' => 'register.js',
                'login.js' => 'login.js',
            ),
        ),
    ),
);
$database =  require(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'db.php');
if (!empty($database)) {
    $config['components'] = CMap::mergeArray($config['components'],$database);
//    Yii::app()->setComponents($database);
}
return $config;

db.php

<?php
return array(
    'db' => array(
        'connectionString' => 'mysql:host=192.168.1.240;dbname=tttt',
        'emulatePrepare' => true,
        'username' => 'root',
        'password' => '****',
        'charset' => 'utf8',
    ),
    'card' => array(
        'class' => 'CDbConnection',//
        'connectionString' => 'mysql:host=192.168.1.240;dbname=card',
        'emulatePrepare' => true,
        'username' => 'root',
        'password' => '**',
        'charset' => 'utf8',
    ),
);

params.php

<?php
return array(
	'adminEmail'=>'info@example.com',
	'pagesize'=>'100',
	'pager'=>array(
		'class'=>'PagerWidget', 
		'maxButtonCount'=>8,
		'firstPageLabel'=>'首页',
		'lastPageLabel'=>'末页',
		'nextPageLabel'=>'下一页',
		'prevPageLabel'=>'上一页',
		'header'=>'',
		'cssFile'=>false, 
	), 
); 

index.php
配置环境常量,不同环境调用不同配置文件和调试级别。

// 运行环境定义 目前支持环境配置[live:线上环境 test:测试环境 dev:开发环境 local:本地环境]
if (stripos($_SERVER['HTTP_HOST'],'m.test.cn') !== false){
    define('APP_ENV','production');
}elseif (stripos($_SERVER['HTTP_HOST'],'m.test.com') !== false){
    define('APP_ENV','test');
}
defined('APP_ENV') or define('APP_ENV','development');

// change the following paths if necessary
if (APP_ENV == 'production') {
    error_reporting(0);
    $yii=dirname(__FILE__).'/framework/yiilite.php';
    defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',1);
} else {
    $yii=dirname(__FILE__).'/framework/yii.php';
    // remove the following lines when in production mode
    defined('YII_DEBUG') or define('YII_DEBUG',true);
    // specify how many levels of call stack should be shown in each log message
    defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);
}
$config=dirname(__FILE__).'/protected/config/'.APP_ENV.'.php';
require('path/to/globals.php'); //见附件
require_once($yii);
Yii::createWebApplication($config)->run();

development.php
开启weblog,profile,数据库性能显示,数据库查询参数记录,GII

production.php
开启数据库结构缓存,关闭错误显示

<?php
return CMap::mergeArray(
    require(dirname(__FILE__).'/main.php'),
    array(
        'components'=>array(
            // uncomment the following to use a MySQL database
            'log'=>array(
                'class'=>'CLogRouter',
                'routes'=>array(
                    array(
                        'class'=>'CFileLogRoute',
                        'levels'=>'error, warning',
                    )
                ),
            ),
        ),
    )
);
分享到:
评论

相关推荐

    Yii2Configloader从配置文件和环境变量构建配置数组

    这使得在不同环境中使用不同的配置变得更加简单,无需修改配置文件。例如,数据库密码可以通过环境变量安全地存储,而不是硬编码在配置文件中。 4. **动态加载**:ConfigLoader 在运行时加载配置,这意味着开发者...

    Yii 2文件下载

    2. **Composer配置文件**:用于管理依赖和自动加载类库。 3. **基础应用模板**:提供一个基本的项目结构,包括公共文件、配置、模型、视图、控制器和路由。 4. **Gii**:这是一个代码生成工具,可以帮助快速生成CRUD...

    YII配置详解以及开发规范

    通过访问 `http://127.1.1.1/APP目录/yii目录/requirements/` 检查系统是否满足 Yii 的部署要求,并根据提示调整环境配置。 接着,利用 `yiic` 工具进行部署,需先将 PHP 解析器路径和 `yiix.bat` 添加到系统环境...

    netsteans下yii配置方案

    在Yii的`protected/config/main.php`配置文件中,你需要设置`'basePath'=&gt;dirname(__FILE__).DS.'..'`,确保它指向了你的项目根目录。 创建数据库连接。在`protected/config/main.php`中,配置数据库连接。找到`'db...

    Yii 2.0.9 advanced zip

    在部署方面,Yii 2.0.9 支持多种服务器环境,包括Apache和Nginx,并且可以通过配置文件轻松调整。对于开发团队,Yii 2 提供了完善的单元测试和集成测试支持,帮助确保代码质量。 总的来说,Yii 2.0.9 advanced zip ...

    yii2 basic 文件

    2. **配置文件** (config目录):包含了应用的配置信息,如数据库连接、路由规则、组件配置等。 3. **公共文件** (web目录):存储前端资源,如CSS、JavaScript和图片,以及应用的入口脚本。 4. **模型** (models...

    yii框架中文文档、yii中文手册教程

    1. **安装与配置**:介绍如何在服务器上安装Yii,以及设置基本的项目环境。 2. **快速入门**:通过一个简单的“Hello, World!”示例来引导开发者了解Yii的基本结构和工作原理。 3. **基础概念**:详细讲解MVC模式,...

    Yii框架参数配置文件params用法实例分析

    Yii框架会按照一定的顺序加载这些配置文件,后面的配置文件会覆盖前面的同名参数,这为环境特定的参数配置提供了便利。 具体加载顺序如下: ***mon/config/*** ***mon/config/params-local.php 3. frontend/config/...

    yii框架中文手册教程和YII模板

    其中,安装部分会指导如何设置开发环境,包括PHP版本要求、Web服务器配置以及如何快速启动一个基本的Yii项目。配置部分解释了如何定制框架的行为,如修改默认设置、添加自定义组件等。 模型部分,会讲解如何创建和...

    yii-1.0.4.r920

    3. 配置管理:Yii 的配置系统允许开发者通过配置文件定义应用的运行时参数,如数据库连接信息、类路径等,使应用更具灵活性和可扩展性。 4. 自动化测试:Yii 支持单元测试和功能测试,提供 Codeception 测试框架...

    从配置文件和环境变量构建配置数组。-PHP开发

    Yii2 Configloader从配置文件和环境变量构建配置数组。 功能您可以使用此扩展来解决以下一些或全部任务:为Yii2 Configloader构建Yii2配置阵列从配置文件和环境变量构建配置阵列。 功能您可以使用此扩展来解决以下...

    yii-basic-app-2.0.5.tgz

    Yii2框架的基本版(Basic App)是一个适合小型项目或者学习框架的简单启动模板,包括了基本的目录结构、配置文件、数据库迁移工具以及基本的前端和后端控制器。这个版本的更新意味着即使是初学者或小型项目也应该...

    YII快速入门教程

    - **作用**: 初始化环境变量、加载配置文件、创建Web应用程序实例并运行。 - **示例代码**: ```php $yii = dirname(__FILE__) . '/../../framework/yii.php'; // Yii框架位置 $config = dirname(__FILE__) . '/...

    yii-advanced-app-2.0.10.tgz

    3. **common**:这个目录包含了整个应用共用的代码,如模型、库函数、配置文件等。 4. **config**:配置文件夹,存储了不同环境下的配置信息,如数据库连接、路由规则等。 5. **console**:控制台应用程序目录,...

    Yii 2.0.9 basic zip

    Yii 2.0.9 basic 版本包含了框架的基本组成部分,如核心库、公共配置文件、基本的项目结构以及一个简单的 Web 服务器配置。这个版本适合那些想要快速启动新项目或者学习 Yii 2 框架的开发者。它包含了必要的文件和...

    Yii框架快速入门

    应用程序负责实例化控制器,并根据配置文件和用户请求来协调整个应用的运行流程。通过全局函数`Yii::app()`,可以从框架中的任何位置访问当前的应用程序实例。 #### 四、扩展与定制 随着应用功能的增加和复杂性的...

    yii框架部署

    完成环境配置后,就可以开始创建一个新的Yii应用了。打开命令提示符,导航到Yii框架的`framework`目录。然后,运行命令`yiic webapp ../project`来创建一个名为“demo”的应用。这个命令会在site目录下创建一个新的...

    Yii面试题摸底测试教学考前摸底

    2. **加载配置文件:** 加载配置文件,将配置信息应用于Application对象。 3. **组件注册:** 注册各种组件和服务提供者,如DB连接、URL管理器等。 4. **请求解析:** 解析用户的HTTP请求,确定请求的路由。 5. **...

    yii-sae-app

    通过这篇文章,我们可以学习到如何配置Yii项目以适应SAE的环境,包括设置配置文件、处理存储和数据库连接等问题。在SAE上,由于没有传统意义上的文件系统,所以通常使用其提供的KVDB(键值数据库)来存储数据,而...

Global site tag (gtag.js) - Google Analytics