Ich bin hier ratlos. Ich habe eine abstrakte Oberklasse in einer Datei und eine Unterklasse in einer anderen definiert. Ich habe die Superklassen-Datei und die Stack-Trace-Berichte benötigt, um ein Include-File zu finden. Es gibt jedoch einen Fehler zurück, wenn es die 'erweitert' Zeile trifft: Fatal error: Class 'HTMLBuilder' not found in View/Markup/HTML/HTML4.01/HTML4_01Builder.php on line 7
. Ich arbeitete mit einem anderen Klassenbaum zusammen, der vor Kurzem Fabriken benutzte. Ich habe gerade die Builder-Schicht zwischen den Fabriken und dem Verbraucher hinzugefügt. Die Factory-Ebene sah in Bezug auf Includes und Abhängigkeiten fast identisch aus. Das bringt mich dazu zu denken, dass ich etwas Dummes getan habe, was dazu führt, dass die HTMLBuilder.php-Datei nicht korrekt aufgenommen oder richtig interpretiert wird oder ähnliches.Foolishness Check: PHP Klasse findet Class-Datei aber nicht Class in der Datei
Hier ist der volle Stack-Trace (Pfade leicht verändert):
# 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
Hier ist der Code in Frage:
Geordnete Klasse (Ansicht/Markup/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);
}
?>
Child-Klasse, (Ansicht/Markup/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;
}
}
?>
Ich würde alle Ideen begrüßen. Ich bin hier völlig verloren, was falsch läuft. Ich bin sicher, es ist etwas dummes, das ich einfach nicht sehen kann ...
Was den Wert von 'include_path' ist? – outis
include_path =>.:/Usr/teilen/php:/usr/teilen/pear =>.:/Usr/share/php:/usr/Aktie/Birne –