php classe soørgsmål Frameworkbuilding
Hej Eksperter.Nu er jeg stadig en n00b til php.. også tænkte jeg lidt på og lave lidt sjov med programmet, for og lære 2 ting... PHP og OOP.
Jeg har tit siddet og leget med Framework før.. som jeg har syntes var utroligt fascinerende, at man kan opbygge noget, på en lettere måde, end man før hen har kunne.
Derfor ville mit projekt være og se hvor langt jeg kan nå i og lave et HTML framework, til PHP.
Nu er det så at jeg sidder og har en masse ideer til det, men mangler ligesom og høre hvad man skal kunne forstå i OOP, før man begynder på sådan et projekt.. Nu vil jeg lige vise hvad jeg har lavet, for og høre hvordan man ellers skulle programmere det...
som sagt dette er et forsøg på og forstå OOP, og ikke et vidergående projekt, ud over hvad jeg kan nå på nogen måneder.
Er dette en korrekt måde og ved hænge objekter hinanden på..
som jeg viser i Førsøg 1. kan jeg jo lave en Div box i en div box, så mange gange jeg vil.. og med så mange elementer i samme level som jeg vil... men stadig.. noget smager forkert.
Mit må i lidt som i dengang Delphi Eksisterede, at man kunne udvikle Windows API i C/C++. Dette er bare HTML i PHP :)
håber jeg har forklaret mig selv godt nok.
XDiv Object (laver div boxe)
class XDiv
{
private $attr = array();
private $children = array();
function XDiv($attr = array())
{
foreach($attr as $attname=>$attvalue)
{
$this->attr[$attname] = $attvalue;
}
}
function AddChild($child)
{
$this->children[] = $child;
}
function toHTML()
{
$html = "".
"<div";
foreach($this->attr as $attname=>$attvalue)
{
$html .= " ".$attname."=\"".$attvalue."\"";
}
$html .= ">";
foreach($this->children as $child)
{
$html .= $child->toHTML();
}
$html .= "</div>";
return $html;
}
}
XTest Object.. laver ren text
class XText
{
private $text = "";
function XText($string)
{
$this->text = $string;
}
function toHTML()
{
return $this->text;
}
}
Forsøg 1: laver en div box, med texten Hallo World
$div = new XDiv(array(
"id"=>"Test",
"class"=>"Uhmm"
));
$div->AddChild(new XText("Hello World"));
echo $div->toHTML();
