Estoy perdido aquí. Definí una superclase abstracta en un archivo y una subclase en otro. He solicitado el archivo de superclases y los informes de seguimiento de pila para encontrar un incluirlo. Sin embargo, luego devuelve un error cuando llega a la línea 'extends': Fatal error: Class 'HTMLBuilder' not found in View/Markup/HTML/HTML4.01/HTML4_01Builder.php on line 7
. Lo tuve trabajando con otro árbol de clases que usa fábricas hace un momento. Acabo de agregar la capa de constructor entre las fábricas y el consumidor. La capa de fábrica se veía casi exactamente igual en términos de inclusiones y dependencias. Eso me hace pensar que debo haber hecho algo tonto que hace que el archivo HTMLBuilder.php no se incluya correctamente o interprete correctamente o algo así.Verificación de tonterías: PHP Class encuentra el archivo de clase pero no Class en el archivo
Aquí está la traza completa (caminos ligeramente alterada):
# Time Memory Function Location
1 0.0001 53904 {main}() ../index.php:0
2 0.0002 67600 require_once('View/Page.php') ../index.php:3
3 0.0003 75444 require_once('View/Sections/SectionFactory.php') ../Page.php:4
4 0.0003 81152 require_once('View/Sections/HTML/HTMLSectionFactory.php') ../SectionFactory.php:3
5 0.0004 92108 require_once('View/Sections/HTML/HTMLTitlebarSection.php') ../HTMLSectionFactory.php:5
6 0.0005 99716 require_once('View/Markup/HTML/HTMLBuilder.php') ../HTMLTitlebarSection.php:3
7 0.0005 103580 require_once('View/Markup/MarkupBuilder.php') ../HTMLBuilder.php:3
8 0.0006 124120 require_once('View/Markup/HTML/HTML4.01/HTML4_01Builder.php') ../MarkupBuilder.php:3
Aquí está el código en cuestión:
clase de Padres (Ver/Marcar/HTML/HTMLBuilder.php):
<?php
require_once('View/Markup/MarkupBuilder.php');
abstract class HTMLBuilder extends MarkupBuilder {
public abstract function getLink($text, $href);
public abstract function getImage($src, $alt);
public abstract function getDivision($id, array $classes=NULL, array $children=NULL);
public abstract function getParagraph($text, array $classes=NULL, $id=NULL);
}
?>
clase hija, (Ver/Marcar/HTML/HTML4.01/HTML4_01Builder.php):
<?php
require_once('HTML4_01Factory.php');
require_once('View/Markup/HTML/HTMLBuilder.php');
class HTML4_01Builder extends HTMLBuilder {
private $factory;
public function __construct() {
$this->factory = new HTML4_01Factory();
}
public function getLink($href, $text) {
$link = $this->factory->getA();
$link->addAttribute('href', $href);
$link->addChild($this->factory->getText($text));
return $link;
}
public function getImage($src, $alt) {
$image = $this->factory->getImg();
$image->addAttribute('src', $src);
$image->addAttribute('alt', $alt);
return $image;
}
public function getDivision($id, array $classes=NULL, array $children=NULL) {
$div = $this->factory->getDiv();
$div->setID($id);
if(!empty($classes)) {
$div->addClasses($classes);
}
if(!empty($children)) {
$div->addChildren($children);
}
return $div;
}
public function getParagraph($text, array $classes=NULL, $id=NULL) {
$p = $this->factory->getP();
$p->addChild($this->factory->getText($text));
if(!empty($classes)) {
$p->addClasses($classes);
}
if(!empty($id)) {
$p->setID($id);
}
return $p;
}
}
?>
Agradecería todas y cada una de las ideas. Estoy completamente perdido aquí en cuanto a lo que está pasando mal. Estoy seguro de que es algo estúpido que no puedo ver ...
¿Cuál es el valor de 'include_path'? – outis
include_path =>.:/Usr/share/php:/usr/share/pear =>.:/Usr/share/php:/usr/share/pear –