Yii 1.1: Using the configuration file, explain what can be configured.

18 followers

The purpose of this post is to let anyone quickly find how to accomplish a configuration task, and list here all the posibilities of the config.php file and also link to pages that explain how is each thing implemented.

Everyone is welcome to add here configuration rules that haven't been specified or links to other documentation.

The configuration file:

<?php
 
// uncomment the following to define a path alias
// Yii::setPathOfAlias('local','path/to/local-folder');
 
// This is the main Web application configuration. Any writable
// CWebApplication properties can be configured here.
return array(
 
    // the base path to the protected folder
    // access it using Yii::app()->basePath
    'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
 
    // name of application
    // access it using Yii::app()->name
    'name'=>'My website',
 
    //aliases to specify shortcuts for paths in your app or
      // perhaps to external resources for your app
      'aliases'=>array(
            'myExternalFramework'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..'
            .DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'myexternalframework'
        ),
 
        //building on above for a controller in the external 
        //framework you can use the controller map to map the 
        //controller path
        'controllerMap'=>array('myController'=>'myExternalFramework.controllers.MyController'),
 
        // default controller that will be executed when running the application
    'defaultController'=>'site', 
 
    // user language (for Locale)
    'language'=>'es',
 
        //language for messages and views
        'sourceLanguage'=>'es',
 
    // charset to use
    'charset'=>'utf-8',
 
    // preloading application components
    'preload'=>array('log'),
 
    // autoloading classes
    'import'=>array(
        'application.models.*',
        'application.components.*',
    ),
 
    // application-level parameters that can be accessed
    // using Yii::app()->params['paramName']
    'params'=>array(
        'adminEmail'=>'info@example.com',
    ),
 
    // Note: you can also separate your configuration file into
    // more files, for example: db.php, params.php and so on.
    // You can do it like this example:
    // 'params'=>require(dirname(__FILE__).'/params.php'),
    // and inside the params.php you will return the array:
    // return array('adminEmail'=>'info@example.com');
 
    // configuration of application components
    'components'=>array(
 
        // assets, see http://www.yiiframework.com/doc/api/CAssetManager
        'assetManager'=>array(
            // change the path on disk
            'basePath'=>dirname(__FILE__).'/../../assets/',
            // change the url
            'baseUrl'=>'/web/assets/'
        ),
 
        // logging
        'log'=>array(
            // class of logger
            'class'=>'CLogRouter', 
            // where to store logs?
            'routes'=>array( 
                array(
                    // store on file, other options are available
                    'class'=>'CFileLogRoute', 
                    // what to store on file? error and warning, info and trace can be added here
                    'levels'=>'error, warning', 
                ),
            ),
        ),
 
        // user
        'user'=>array(
            // enable cookie-based authentication
            'allowAutoLogin'=>true,
            // set the url where user must be redirected if authentication needed
            // use null to force 403 HTTP error 
            'loginUrl'=>null,
            // set here the name of a class
            // that extends CWebUser and it is stored in
            // protected/components/<classname>
            // see: http://www.yiiframework.com/doc/cookbook/60/
            'class' => 'WebUser',
        ),
 
        // database
        'db'=>array(
            // using mysql
            'connectionString'=>'mysql:host=example.com;dbname=my_db',
            'username'=>'my_user',
            'password'=>'my_password',
            // set the charset of the connection
            'charset'=>'utf8',
            // using sqlite
            // 'connectionString'=>'sqlite:'.dirname(__FILE__).'/../data/blog.db',
            //'charset'=>'utf8',
            'schemaCachingDuration'=>'duration in seconds',
        ),
 
                // config for db message source here, see http://www.yiiframework.com/doc/api/CDbMessagesource
                'messages' => array(
                       'class' => 'CDbMessageSource',
                ),
 
        // caching
        'cache'=>array(
            'class'=>'A cache class, like: system.caching.CApcCache',
        ),
 
        // url 
        'urlManager'=>array(
            // the URL format. It must be either 'path' or 'get'.
            // path: index.php/controller/action/attribute/value
            // get: index.php?r=controller/action&attribute=value
            'urlFormat'=>'path',
            // show www.example.com/index.php/controller/action 
            // or just www.example.com/controller/action
            'showScriptName' => true,
            // rules to redirect a specific url to the controller you want
            // see: http://www.yiiframework.com/doc/guide/topics.url
            'rules'=>array(
                // www.example.com/home instead of www.example.com/site/index
                'home'=>'site/index',
                'post/<id:\d+>'=>'post/show',
            ),
        ),
                // you can use the scriptMap to configure where your scripts come from. 
                //If you use the split configurations for development and production you can 
                // have different maps in each and then just load the file and it'll
                // load the appropriate file depending on the configuration your running.
                // for a production configuration you can have this
                'clientScript'=>array(
                      'scriptMap'=>array(
                          'register.js'=>'site.min.js',
                          'login.js'=>'site.min.js',
                      ),
                ),
                // for a development configuration you can have this
                'clientScript'=>array(
                      'scriptMap'=>array(
                          'register.js'=>'register.js',
                          'login.js'=>'login.js',
                      ),
                ),
    ),
);
?>

Be the first person to leave a comment

Please to leave your comment.

Write new article
  • Written by: atrandafir
  • Updated by: Yang He
  • Category: Tutorials
  • Yii Version: 1.1
  • Votes: +20
  • Viewed: 46,994 times
  • Created on: Jan 10, 2010
  • Last updated: Jun 30, 2012