Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
49 lines (34 sloc) 1.08 KB

Registry

Purpose

To implement a central storage for objects often used throughout the application, is typically implemented using an abstract class with only static methods (or using the Singleton pattern). Remember that this introduces global state, which should be avoided at all times! Instead implement it using Dependency Injection!

Examples

  • Zend Framework 1: Zend_Registry holds the application's logger object, front controller etc.
  • Yii Framework: CWebApplication holds all the application components, such as CWebUser, CUrlManager, etc.

UML Diagram

Alt Registry UML Diagram

Code

You can also find this code on GitHub

Registry.php

.. literalinclude:: Registry.php
   :language: php
   :linenos:

Test

Tests/RegistryTest.php

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