$name = $this->getName(); return "<label for=\"{$name}\">{$this->label}</label>\n" . $this->element->__toString(); } } class ErrorDecorator extends HtmlDecorator { protected $error; public function setError($message) { $this->error = $message; } public function __toString() { return $this->element->__toString() . "<span>{$this->error}</span>\n"; } } $input = new InputText('nickname'); $labelled = new LabelDecorator($input); $labelled->setLabel('Nickname:'); printf("%s\n", $labelled); $input = new InputText('nickname'); $error = new ErrorDecorator($input); $error->setError('You must enter a unique nickname'); printf("%s\n", $error); // Label + Error $input = new InputText('nickname'); $labelled = new LabelDecorator($input); $labelled->setLabel('Nickname:'); $error = new ErrorDecorator($labelled); $error->setError('You must enter a unique nickname'); printf("%s\n", $error);
{ $name = $this->getName(); return "<label for\"{$name}\">{$this->label}</label>\n" . $this->element->__toString(); } } class ErrorDecorator extends HtmlDecorator { protected $error; public function setError($message) { $this->error = $message; } public function __toString() { return $this->element->__toString() . "<span>{$this->error}</span>\n"; } } $input = new InputText('nickname'); $labelled = new LabelDecorator($input); $labelled->setLabel('Nick'); echo $labelled . PHP_EOL; $input = new InputText('nickname'); $error = new ErrorDecorator($input); $error->setError('You must enter a nickname'); echo $error . PHP_EOL; $input = new InputText('nickname'); $labelled = new LabelDecorator($input); $labelled->setLabel('Nick:'); $error = new ErrorDecorator($labelled); $error->setError('You must enter a nickname'); echo $error;