Foros del Web » Programando para Internet » PHP »

Como usar variables dentro de un metodo displayTemplate

Estas en el tema de Como usar variables dentro de un metodo displayTemplate en el foro de PHP en Foros del Web. Uff no me quedó bonito el titulo, pero les explico. Estoy creando pequeño sistema de plantillas, mi controlador posee el metodo display que incluye un ...
  #1 (permalink)  
Antiguo 10/06/2011, 19:59
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Como usar variables dentro de un metodo displayTemplate

Uff no me quedó bonito el titulo, pero les explico.
Estoy creando pequeño sistema de plantillas, mi controlador posee el metodo display que incluye un archivo que posee codigo html y variables php.
Código Javascript:
Ver original
  1. public function display($template){
  2.     include(ROOT_VIEW.'/'.$_template_name);
  3. }
Previamente se hace uso de otro metodo del controlador que se encarga de asignar variables al objeto controlador de manera que luego estén disponibles para el template.
Código Javascript:
Ver original
  1. public function assign( $varName, $varValue ){
  2.      $this->vars[$varName] = $varValue;
  3. }
Nada del otro mundo verdad?
El problema que es ¿como hago para brindarle las variables al template?
El template simplemente muestra las variables, deberia usar las que están dentro del objeto $xxxx->vars[], verdad?
pero no se como hacer para que estén disponibles para el template incluido por include()
__________________
I am Doyle please insert code.
  #2 (permalink)  
Antiguo 11/06/2011, 12:17
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: Como usar variables dentro de un metodo displayTemplate

No me olviden =\
__________________
I am Doyle please insert code.
  #3 (permalink)  
Antiguo 11/06/2011, 12:32
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Como usar variables dentro de un metodo displayTemplate

Que tal doylelives,

Tal cual lo planteas, $this dentro del template hace referencia a la clase que esta haciendo el include, con hacer

Código PHP:
Ver original
  1. <?php echo $this->vars['key']; ?>

debería funcionar, aunque puedes utilizar algo de la magia de PHP con __get para no estar haciendo $this->_var['key'] y que sea directamente en la vista $this->key.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 11/06/2011, 12:32
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Como usar variables dentro de un metodo displayTemplate

hazlo como lo hacen en los frameworks, la verdad no se como lo hacen XD pero yo le buscaria por ahi.

bueno es lo que dijo master
  #5 (permalink)  
Antiguo 11/06/2011, 20:10
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: Como usar variables dentro de un metodo displayTemplate

Si, no se porque no lo probé asi, sin embargo he encontrado otra manera, quizas más prolija.
Usé la función extract de php.
De manera que las variables, dentro de la propiedad "$this->vars" del controlador, estén mapeados, por ende disponibles para el include.
Código Javascript:
Ver original
  1. public function display($template){
  2.           extract($this->vars);
  3.           include(ROOT_VIEW.'/'.$template);
  4.       }
De esta forma, en el tpl solo uso el nombre de la variable.
Código Javascript:
Ver original
  1. <?php
  2. echo $name;
  3. foreach( $productos as $item){
  4. ?>

Creo que es más conveniente así.
Aunque me gustaría saber sus opiniones. ;)
__________________
I am Doyle please insert code.
  #6 (permalink)  
Antiguo 11/06/2011, 20:39
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Como usar variables dentro de un metodo displayTemplate

Es una cuestion de gustos doylelives, yo prefiero el approach de Zend, acceder a traves de $this, extract sino recuerdo mal es lo que utiliza Symfony.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: metodo, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:39.