Back to Designpatternsphp

`Proxy`__

Structural/Proxy/README.rst

latest992 B
Original Source

Proxy__

Purpose

To interface to anything that is expensive or impossible to duplicate.

Examples

  • Doctrine2 uses proxies to implement framework magic (e.g. lazy initialization) in them, while the user still works with his own entity classes and will never use nor touch the proxies

UML Diagram

.. image:: uml/uml.png :alt: Alt Proxy UML Diagram :align: center

Code

You can also find this code on GitHub_

BankAccount.php

.. literalinclude:: BankAccount.php :language: php :linenos:

HeavyBankAccount.php

.. literalinclude:: HeavyBankAccount.php :language: php :linenos:

BankAccountProxy.php

.. literalinclude:: BankAccountProxy.php :language: php :linenos:

Test

ProxyTest.php

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

.. _GitHub: https://github.com/DesignPatternsPHP/DesignPatternsPHP/tree/main/Structural/Proxy .. __: http://en.wikipedia.org/wiki/Proxy_pattern