Foros del Web » Programando para Internet » PHP »

ayuda con patron decorator en php

Estas en el tema de ayuda con patron decorator en php en el foro de PHP en Foros del Web. hola comunidad tengo un problema quiero con el patron decorator construir mi pagina, me explico, quiero tener mi sitio separado por partes es decir la ...
  #1 (permalink)  
Antiguo 16/11/2010, 21:19
 
Fecha de Ingreso: marzo-2009
Mensajes: 155
Antigüedad: 15 años, 1 mes
Puntos: 1
ayuda con patron decorator en php

hola comunidad tengo un problema quiero con el patron decorator construir mi pagina, me explico, quiero tener mi sitio separado por partes es decir la parte del layout (parte el sitio que es lo mismo para todas las paginas como menus, banners etc) y por modulos las paginas, lo que quiero es que a la hora de mostrar las paginas de estos modulos me salgan decoradas con el layout que defini anteriormente. Si alguien sabe como hacer esto se lo agradecere.

saludos manuelle
  #2 (permalink)  
Antiguo 16/11/2010, 23:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ayuda con patron decorator en php

Esto que indicas no es el patrón decorator, si no es un sistema de plantillas, te recomiendo buscar sobre eso.

Saludos
  #3 (permalink)  
Antiguo 17/11/2010, 13:23
 
Fecha de Ingreso: marzo-2009
Mensajes: 155
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: ayuda con patron decorator en php

GatorV gracias por responder, estuve buscando informacion sobre esto y me ha resultado interesante pero lo que estoy trabtando de hacer es parecido a lo que hace symfony, ellos crean un fichero php que se llama layout donde esta el codigo estatico, y entonces en las paginas de los modulos no es necesario escribir este codigo estatico para todo el mundo, el problema que aqui no se trabaja con ficheros tpl todo es con php,
saludos manuelle
  #4 (permalink)  
Antiguo 17/11/2010, 15:26
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: ayuda con patron decorator en php

En realidad si es decorator o al menos lo es para la gente de symfony(tengo mis dudas) symfony layout, no se nada de symfony(Zend fan!), pero podes mirar como lo hacen ellos para tener una idea.
Descargate symfony y mira dentro de la carpeta /lib/view, la clase sfPHPView, los metodos son render, renderFile y decorate.

Salu2.
  #5 (permalink)  
Antiguo 17/11/2010, 15:39
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: ayuda con patron decorator en php

Código PHP:
<?php
/**
 * Sistema de Templates que enlaza PHP con las plantillas (MVC)
 *
 * Clase encargada de tomar los datos enviados desde
 * PHP en forma de array y distribuirlos sobre un archivo- Template
 * El sistema catura dentro del template las palabras entre {}
 * y las reemplaza por el valor con la llave respectiva de un array asociativo
 *
 * @category MVC
 * @subpackage Library Classes
 * @copyright Copyright (c) 2010, Hidek1 [[email protected]]
 * @license http://creativecommons.org/licenses/by-sa/2.0/cl/
 * Atribución-Licenciar Igual 2.0 Chile.
 * @since 0.1a
 */
class Template
{
    private 
$_filename;

    
/**
     * Obtiene la ruta al template
     * este debe tener permisos de lectura
     * retorna una Exception en caso de que 
     * el archivo especificado no se encuentre.
     *
     * @param string $filename
     */
    
public function __construct($filename)
    {
        if (
file_exists($filename)) {
            
$this->_filename $filename;
        } else {
            throw new 
Exception("Template no encotrado.");
        }
    }

    
/**
     * Devuelve el template procesado con sus variables correspondientes
     * captura dentro de este las palabras entre {} y las modifica por su 
     * valor correspondiente en el array
     * 
     * $valores = array('foo' => 'bar');
     * La palabra de prueba {foo}
     * 
     * @param array $matriz
     * @return string
     */
    
public function render(array $matriz = array())
    {
        if (empty(
$matriz)) {
            return 
file_get_contents($this->_filename);
        } else {
            foreach (
$matriz as $key => $value) {
                $
$key $value;
            }
            
$template file_get_contents($this->_filename);
            
$template str_replace(array('\\''\''), array('\\\\''\\\''), $template);
            
$template preg_replace('/{([a-z]\w+?)}/i'"'.$$1.'"$template);
            eval(
"\$template = '$template';");
            return 
$template;
        }
    }
}
__________________
More about me...
~ @rhyudek1
~ Github

Etiquetas: patron
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 11:05.