Crear distintas configuraciones en Yii. ( Desarrollo / Producción)

En general el desarrollo de aplicaciones web, ya sean colaborativas o no, se divide a grandes rasgos en fases de desarrollo y producción.

Yii, es un framework que promete mucho, se adapta bastante bien a la programación agil, además de ser bastante intuitivo, rápido y seguro.

Por mi parte, estoy ocupando el servidor de pruebas en Amazon Cloud ( Espero hacer un tutorial de esto pronto ), y de desarrollo de manera local en distintos computadores sincronizados con GIT ( En un servidor propio ).

Tomando esto en cuenta, se debe de hacer la distinción,  o al menos el framework debe de saber diferenciar entres las maquinas que se encuentre y cargar la configuración necesaria para cada una de ellas.

Lo primero que haremos es cambiar el contenido del archivo index.php que se encuentra en la carpeta protected de nuestro framework.

 

Nuestra configuración original se verá de la siguiente manera:

 

// change the following paths if necessary
$yii=dirname(__FILE__).'/../yii-1.1.10.r3566/framework/yii.php';
$config=dirname(__FILE__).'/protected/config/main.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);

require_once($yii);
Yii::createWebApplication($config)->run();

Lo que queremos lograr es definir los distintos ambientes dependiendo de la máquina que utilicemos.

//Definimos la dirección de nuestr servidor de producción.
define('SERVER_NAME_DEV', 'localhost');

$nombreServerActual = $_SERVER['SERVER_NAME'];

//La dirección siempre será la misma, sin imporar en que server se encuentre
$yii=dirname(__FILE__).'/../yii-1.1.10.r3566/framework/yii.php';

//El archivo de configuración dependerá del server en donde nos encontremos.
switch ($nombreServerActual) {
    case SERVER_NAME_DEV:

        //Archivo de configuración para el server de desarrollo.
        $config = dirname(__FILE__) . '/protected/config/main_dev.php';
        defined('YII_DEBUG') or define('YII_DEBUG', true);
        defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL', 0);

        break;

    default:

        //Archivo de configuración para el server de producción.
        $config = dirname(__FILE__) . '/protected/config/main.php';
        defined('YII_DEBUG') or define('YII_DEBUG', false);
        defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL', 3);
        break;
}

require_once($yii);
Yii::createWebApplication($config)->run();

De esta simple manera podemos tener cuantos ambientes de desarrollo queramos sin comprometer la configuración ni las base de datos.

Para crear el archivo main_dev que será la configuración para el desarrollo, simplemente copiamos el archivo main y lo renombramos. A este nuevo archivo le podemos hacer las modificaciones necesarias.

2 Replies to “Crear distintas configuraciones en Yii. ( Desarrollo / Producción)”

Deja un comentario

This site uses Akismet to reduce spam. Learn how your comment data is processed.