Foros del Web » Programando para Internet » PHP »

objeto se pierde

Estas en el tema de objeto se pierde en el foro de PHP en Foros del Web. hola veran me estoy creando un motor de templates una pequeña libreria que carga templates en php y asi darle mas velocidad a la web ...
  #1 (permalink)  
Antiguo 14/04/2009, 19:42
 
Fecha de Ingreso: mayo-2007
Mensajes: 51
Antigüedad: 16 años, 11 meses
Puntos: 0
objeto se pierde

hola veran me estoy creando un motor de templates una pequeña libreria que carga templates en php y asi darle mas velocidad a la web bueno veran tengo el siguiente problema

a la hora de cargar la platilla en php se hace de la siguiente manera

$ddatpl->tpl_cargar("header.php");

asi cargo el template la cuestion es que da un error por que no reconoce el objeto o variable mejor dicho ddatpl os enseño como cargo el template

function tpl_cargar($plantilla) {
if (file_exists($this->tpl_dir)) {
if (file_exists($this->tpl_dir . "/$plantilla")) {
include($this->tpl_dir . "/$plantilla");
} else trigger_error("La plantilla '$plantilla' no existe", E_USER_ERROR);
} else trigger_error("El directorio de plantillas especificado no existe. Verifique la constante TPL_DIR", E_USER_ERROR);
}
la cuestion es que el include que hace para cargar el template al hacerse dentro de el metodo de la clase no reconoce el objeto que ya esta creado entocnes al cargarse el template al intentar traducir las variables que ahi dentro del template logicamente da error ya que no ahi niingun objeto referenciado e conseguido solucionarlo de dos formas pero no se que tan bueno sea hacer eso, una es pasarle el objeto que ya esta creado como un parametro del metodo tpl_cargar
y la otra es hacerlo el include directamente en donde cargo la plantilla osea ahcerlo de esta manera include($ddatpl->tpl_cargar("header.php")); no se que tan bueno sea esto ya que quizas sea peor esto que hacerlo directamente el motor de templates con funciones normales que con objetos ya que esta tan de moda los objetos quiero empeñarme a hacerlo con programacion orientada a objetos... bueno aver si alguien save la solcuion perfecta para que al cargar el template no se me pierda el objeto y que no sean las opciones que dije yp ya que esas funcionan y si no ahi ninguna otra forma de hacerlo diganme si de esa manera creen que esta bien o creen que sera un consumo mayor ya que se va pasando el objeto todo el rato con la cantidad de datos que lleva guardados o que de que.... saludos y gracais de antemano ;d.
  #2 (permalink)  
Antiguo 16/04/2009, 09:27
Avatar de deivax  
Fecha de Ingreso: marzo-2006
Mensajes: 31
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: objeto se pierde

En algún momento instanciás la clase ddatpl? Hay una clase ddatpl?
$this funciona únicamente en el contexto del código de la propia clase una vez instanciada.
Por ejemplo, si tenés esto:
Código PHP:
<?php
class ddatpl
{
  function 
tpl_cargar($plantilla) {
    if (
file_exists($this->tpl_dir)) {
      if (
file_exists($this->tpl_dir "/$plantilla")) {
        include(
$this->tpl_dir "/$plantilla");
      } else 
trigger_error("La plantilla '$plantilla' no existe"E_USER_ERROR);
    } else 
trigger_error("El directorio de plantillas especificado no existe. Verifique la constante TPL_DIR"E_USER_ERROR);
  }
}
Lo más probable es que esto funcione:
Código PHP:
<?php
$ddatpl 
= new ddatpl();
$ddatpl->tpl_cargar("header.php");
?>
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 21:27.