188_7d3f4775af1ff15c44b29f1ea1a99b51_habitaclick.png

GlobexCorp

wpe.jpg

Get Firefox

Descarga Firefox 3

Sponsor

Places

Tagboard

<h2>: cosa
<h1>l: l
Gnuget: Cual panda cual panda? :p, Bucio me suenas conocido pero la neta no te ubico, ibas conmigo a la secundaria? :p
zodman: donde esta el pandita ?
Bucio: :) gnuget hola te acuerdas de mi
yobageM: hola _o/
GnDx: jaja xD =D

My Plurk

Tip: Poner Variables globales en cakephp

Mas de una persona me ha preguntado como podría poner una “constante” global  en su proyecto de cakephp. La gran mayoría opta por  ponerlas en app_controller  o en app_model según donde les sean mas útiles.

Pero existe una forma mejor, una forma que a mi me  gusta mucho usar a la hora de necesitar acceder  una variable en cualquier parte de mi proyecto, y es en el mismo archivo de configuración de cake el  llamado core.php.

Dentro de ese archivo  tenemos cosas de este tipo:

   Configure::write('Routing.admin', 'admin');
    Configure::write('Session.save', 'php');

Y eso no es mas que guardar ciertas variables en nuestro archivo de configuración, es decir,  ese archivo existe para que nosotros podamos configurar  el cake a nuestro gusto, por lo tanto cake en algún momento accede a esas variables de manera constante, así que siempre están disponibles.

Así que si  queremos guardar algún dato nosotros  simplemente necesitamos agregar hasta el final de este archivo  nuestra variable

Configure::write("miVariable","valor');

Y listo, cuando queramos acceder a ese valor bastará con poner:

$valor = Configure::read("miVariable");

Y es todo.

Temas relacionados

{ programación, cakephp, framework, cakephp-es }

Sobre el autor

Gnuget

Programador de tiempo completo,  Con enorme gusto  por el software libre.

Comentarios

viernes 18 de julio, 2008 @ 02:52

Lenko

Como neófito de cakephp yo las estaba poniendo en <em>bootstrap.php</em>, que tenía entendido que era el lugar adecuado para hacer declaraciones que afectaran a toda la aplicación. Incluso en este archivo he declarado un par de minifunciones útiles de esas que utilizo mucho.

Debería hacerlo en otro sitio?

Otra pregunta. Si el valor no va a cambiar… ¿no es más eficiente declarar una constante que guardar y leer un valor del fichero de configuración de cakephp?

viernes 18 de julio, 2008 @ 12:23

Gnuget

Pues no es recomendable  tocar  el framework en si mismo, por que si en algún momento vas a actualizar el core  tendrás que volver a parcharlo todo.

Por otro lado, pues si, podría guardarse una constante ahí, de hecho hasta podría mejorar el rendimiento de la aplicación. Pero la flexibilidad de la clase te permite cambiar el valor de la variable en tiempo de ejecución si fuera necesario.

Pero como dices, si están completamente seguros que no necesitan cambiar  el valor, quizá definir una constante no es mala idea.

Configure también te permite cargar completamente un archivo propio de configuración,  aquí un post de mariano iglesias explicando como:

http://tinyurl.com/6r7frw

Claro que de cualquier forma el toca también el bootstramp, así que sale casi lo mismo

viernes 18 de julio, 2008 @ 18:26

Martin Bavio

bootstrap.php no es el core de cake, esta en tu app. Pero bootstrap.php sirve para definir funciones globales, claro que puedes usarlo para cargar constantes, pero es mas “a la cake” si usas lo que Gnuget explica aqui.

viernes 18 de julio, 2008 @ 18:53

Gnuget

Tienes razón,  no había visto que existía un archivo  bootstrap  en la carpeta config x)

Sorry

lunes 21 de julio, 2008 @ 02:13

Lenko

Ok, gracias por vuestras respuestas.

miércoles 23 de julio, 2008 @ 18:07

josepzin

A mi me gusta mucho Cake y lo uso para todo, pero este tipo de cosas me parecen un poco “complicaciones innecesarias”…

Si un declare('constante', valor); es suficiente, veo una recarga hacer todo esto del configure:write y demás…