diff --git a/Composite/Composite.php b/Composite/Form.php similarity index 63% rename from Composite/Composite.php rename to Composite/Form.php index 4236d44..0cc16e1 100644 --- a/Composite/Composite.php +++ b/Composite/Form.php @@ -1,6 +1,6 @@ _elements as $element) { - $formCode .= $element->render(); + $formCode .= $element->render($indent + 1) . PHP_EOL; } return $formCode; @@ -41,29 +43,3 @@ class Form $this->_elements[] = $element; } } - -abstract class FormElement -{ - abstract public function render(); -} - -class TextElement extends FormElement -{ - public function render() - { - return 'this is a text element'; - } -} - -class InputElement extends FormElement -{ - public function render() - { - return ''; - } -} - -$form = new Form(); -$form->addElement(new TextElement()); -$form->addElement(new InputElement()); -echo $form->render(); \ No newline at end of file diff --git a/Composite/FormElement.php b/Composite/FormElement.php new file mode 100644 index 0000000..3e3de93 --- /dev/null +++ b/Composite/FormElement.php @@ -0,0 +1,8 @@ +'; + } +} diff --git a/Composite/TextElement.php b/Composite/TextElement.php new file mode 100644 index 0000000..c8214ca --- /dev/null +++ b/Composite/TextElement.php @@ -0,0 +1,11 @@ +addElement(new Composite\TextElement()); + $form->addElement(new Composite\InputElement()); + $embed = new Composite\Form(); + $embed->addElement(new Composite\TextElement()); + $embed->addElement(new Composite\InputElement()); + $form->addElement($embed); // here we have a embedded form (like SF2 does) + + $this->assertRegExp('#^\s{4}#m', $form->render()); + } + +} \ No newline at end of file