Ben burada bir kaybı var. Ben başka bir dosya ve bir alt sınıfta soyut bir üst sınıfı tanımladık. Ben bir bunu eklemek bulmak için süper sınıflar dosya ve yığın izleme raporlarını gerektirmiştir. Ancak, o 'uzanır' Sınırda zaman bir hata döndürür: Fatal error: Class 'HTMLBuilder' not found in View/Markup/HTML/HTML4.01/HTML4_01Builder.php on line 7
. Bunun bir an önce fabrika kullanan başka bir sınıfı ağaç ile çalışma vardı. Ben sadece fabrika ve tüketici arasında oluşturucu bir katman ekledi. Fabrika tabakası neredeyse tam olarak aynı açısından içerir ve bağımlılıkları baktı. Yani bana en HTMLBuilder.php dosya düzgün dahil veya doğru yorumlanması ya da böyle değil neden bu aptalca bir şey yapmış olmalı düşündürüyor.
İşte tam yığın izleme (yolları biraz değişmiş) bulunuyor:
# 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
Burada söz kodu:
Üst sınıf (View / Biçimlendirme / 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);
}
?>
Çocuk Sınıfı, (View/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;
}
}
?>
Ben her türlü fikir seviniriz. Ben yanlış gidiyor ne gibi burada tam bir kaybı yaşıyorum. Bunu ben sadece göremiyorum aptalca şey olduğundan emin değilim ...