Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/04/2012, 18:27
Avatar de McBlink
McBlink
 
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Pregunta Dudas, "Framework" Casero..

Buenas noches,
antes que me digan cosas como

Para que reinventar la rueda
Usa Zend, CI, Cake, etc.
...

Quería comentarles que no estoy intentando desarrollas mi propio framework, sino que estoy haciendo un entorno de desarrollo que me permita realizar aplicaciones web sencillas de manera rápida y ordenada. Con sencilla, digo un par de páginas, con acceso a base de datos y no mucho mas.

Básicamente, lo que estoy haciendo es agrupar un conjunto de Funciones y Clases que me permitan realizar acciones fácilmente.

Por ejemplo, utilizo algunos componentes de Zend, como Zend_Db, Zend_Json etc..

La idea que tenia, era crear ademas de los modulos que puedo tomar de Zend, algunos mas, incluso propios y llamar al modulo que necesite cuando lo necesite.

Mi problema esta en la clase que maneja los templates, tengo un index.php que es el que se encarga de cargar los templates y las vistas y mostrar todo (al estilo de cualquier Framework)


index.php
Código PHP:
Ver original
  1. require_once 'Config.php';
  2. require_once 'Template.php';
  3. require_once 'Zend/Db.php';
  4.  
  5. $db = Zend_Db::factory( $db_config['adapter'], $db_config );
  6.  
  7.     $layout = new Template('templates/default.php');
  8.     $layout->set('title', 'Titulo de la Pagina' );
  9.     $layout->set('contenido', 'home' );
  10.     echo $layout->output();

Mi problema viene específicamente con los templates, en este código que acabo de escribir, creo un template indicando la ruta del archivo, y luego le asigno propiedades que luego son reemplazadas.
Si es un archivo, en el caso de "home" que refiere a "home.php" el Template lo parse con la siguiente funcion:

Código PHP:
        function parse($file
        {
            
ob_start();
            include(
$file);
            
$buffer ob_get_contents();
            
ob_end_clean();
            
//return $buffer;
        

El problema esta que si yo dentro del archivo "home.php" quiero acceder al Objeto Base de Datos $db creado en el index.php, no puedo por una cuestion del ambito de las variables, el parser hace el include dentro de la clase Template y no puedo acceder al objeto $db.

Para resumir, la idea que tenia es cargar componetes en el index.php:
Zend_db
Zend_Feed
Template
Thumb
etc..

y que luego, pueda utilizarlos individualmente en las vistas que cargo con la clase Template..

hay alguna forma de realizarlo o estoy perdiendo el tiemo?



Disculpas por la extension del post, pero queria explicarme un poco para que se entienda la idea que tengo en la cabeza, y que me esta costando traducirla a código!

Gracias!