Skip to content

Files

Latest commit

b8aa050 · Sep 27, 2023

History

History
This branch is 5 commits behind DesignPatternsPHP/DesignPatternsPHP:main.

Composite

Purpose

To treat a group of objects the same way as a single instance of the object.

Examples

  • a form class instance handles all its form elements like a single instance of the form, when render() is called, it subsequently runs through all its child elements and calls render() on them

UML Diagram

Alt Composite UML Diagram

Code

You can also find this code on GitHub

Renderable.php

.. literalinclude:: Renderable.php
   :language: php
   :linenos:

Form.php

.. literalinclude:: Form.php
   :language: php
   :linenos:

InputElement.php

.. literalinclude:: InputElement.php
   :language: php
   :linenos:

TextElement.php

.. literalinclude:: TextElement.php
   :language: php
   :linenos:

Test

Tests/CompositeTest.php

.. literalinclude:: Tests/CompositeTest.php
   :language: php
   :linenos: