Skip to content

Files

Latest commit

Dominik LieblerStyleCIBot
Dominik Liebler
and
Dec 21, 2015
fe1f144 · Dec 21, 2015

History

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

Repository

Repository

Purpose

Mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects. Repository encapsulates the set of objects persisted in a data store and the operations performed over them, providing a more object-oriented view of the persistence layer. Repository also supports the objective of achieving a clean separation and one-way dependency between the domain and data mapping layers.

Examples

  • Doctrine 2 ORM: there is Repository that mediates between Entity and DBAL and contains methods to retrieve objects
  • Laravel Framework

UML Diagram

Alt Repository UML Diagram

Code

You can also find these code on GitHub

Post.php

.. literalinclude:: Post.php
   :language: php
   :linenos:

PostRepository.php

.. literalinclude:: PostRepository.php
   :language: php
   :linenos:

Storage.php

.. literalinclude:: Storage.php
   :language: php
   :linenos:

MemoryStorage.php

.. literalinclude:: MemoryStorage.php
   :language: php
   :linenos:

Test