2012-05-08 25 views
10

Quiero conocer una forma clara de definir las constantes de aplicación en Codeigniter. No quiero cambiar ningún archivo nativo de codeigniter. Por lo tanto, no quiero definirlo en application/config/constants.php ya que cuando necesito migrar a una versión más nueva de code-igniter no podré copiar los archivos nativos de codeigniter directamente.Definición de constantes de aplicación en Codeigniter

Creé un archivo application/config/my_constants.php y definí mis constantes allí. 'define (' APP_VERSION ',' 1.0.0 ');'

cargué usando $this->load->config('my_constants');

pero estoy recibiendo un error

Your application/config/dv_constants.php file does not appear to contain a valid configuration array.

Por favor, me sugieren una forma limpia de definir constantes de nivel de aplicación en código trico.

+0

Por favor, siga la guía que le ayudará http://codeigniter.com/user_guide/libraries/config.html –

+0

No es muy útil, porque, como dice en la guía, codeigniter fusionará su archivo en la matriz de constantes , por lo que obtendrá el mismo resultado y abrirá un archivo más de lo habitual, por lo que será más lento. – Patroklo

+4

Cualquier archivo en las carpetas de aplicaciones es para que usted lo edite. Solo evite cambiar cualquier cosa en la carpeta del sistema. – Broncha

Respuesta

31

No usar application/config/constants.php es una tontería! Ese es el único lugardebe poner sus constantes. No modifique los archivos en system si le preocupa la actualización.

+1

El motivo por el que evito usar 'application/config/constants.php' para mis constantes de aplicación personalizadas es que quería mantener separadas las constantes de mi aplicación personalizada de la constante definida General Code-Igniter. Mantengo mis parámetros de configuración personalizados en un archivo separado 'application/config/my_config.php' y no lo mezclé con' application/config/config.php' En la misma línea quería mantener las constantes de mi aplicación personalizada en archivo separado. Por ahora voy a usar 'application/config/constants.php' para definir mis constantes. Gracias por su respuesta. – piyush

+4

Puede incluir_unidades 'my_constants.php' de constants.php para mantener esos archivos separados. –

2

En lugar de utilizar define(), su archivo my_constants.php debería ser algo como esto:

$config['app_version'] = '1.0.0'; 

tener cuidado con nombrar la clave de la matriz, sin embargo, que no quiere entrar en conflicto con cualquier cosa.

Si necesita usar define(), le sugiero que lo haga en el archivo index.php principal, aunque igual necesitará usar APP_VERSION para obtener el valor.

0
config file (system/application/config/config.php) to set configuration related variables. 

    Or use 

    constant file (system/application/config/constants.php) to store site preference constants. 


    ======================= 
    DEFINE WHAT YOU WANT 
    ======================= 
    $config['index_page'] = 'home'; 
    $config['BASEPATH'] = 'PATH TO YOUR HOST'; 
0

Consulte la siguiente:

http://ellislab.com/forums/viewthread/56981/

Definir variables en constantes a & agregar valor en la matriz de

$ORDER_STATUS = array('0'=>'In Progress','1'=>'On Hold','2' 
       =>'Awaiting Review','3'=>'Completed','4' 
       =>'Refund Requested','5'=>'Refunded'); 
2

sólo una respuesta completa. (Ninguna de las respuestas muestran cómo utilizar las constantes que fueron declarados)

El proceso es simple:

  1. Definir una constante. Abrir config/constants.php y añadir la siguiente línea:

    define('SITE_CREATOR', 'John Doe')

  2. utilizar esta constante en otro archivo usando:

    $myVar = 'This site was created by '.SITE_CREATOR.' Check out my GitHub Profile'

0

Usted puede lograr su objetivo mediante la adición de las constantes de su propio config archivo, como my_config.php.

Guardará este archivo en la carpeta application/config, así: application/config/my_config.php.

Es muy común tener un archivo de configuración separado para cada aplicación que escriba, por lo que sería fácil de mantener y comprender por otros programadores de CI.

Puede indicar a CI que autocargue este archivo o puede cargarlo manualmente, según sea necesario. Consulte el manual de CI en "Clase de configuración".