diff --git a/DataMapper/README.md b/DataMapper/README.md new file mode 100644 index 0000000..61245de --- /dev/null +++ b/DataMapper/README.md @@ -0,0 +1,18 @@ +# Data Mapper + +## Purpose + +A Data Mapper, is a Data Access Layer that performs bidirectional transfer of +data between a persistent data store (often a relational database) and an in +memory data representation (the domain layer). The goal of the pattern is to +keep the in memory representation and the persistent data store independent of +each other and the data mapper itself. The layer is composed of one or more +mappers (or Data Access Objects), performing the data transfer. Mapper +implementations vary in scope. Generic mappers will handle many different domain +entity types, dedicated mappers will handle one or a few. + +The key point of this pattern is, unlike Active Record pattern, the data model follows Single Responsibility Principle. + +## Examples + +* DB Object Relational Mapper (ORM) : Doctrine2 uses DAO named as "EntityRepository" diff --git a/DataMapper/UserMapper.php b/DataMapper/UserMapper.php index 0b6b689..a9d65e7 100644 --- a/DataMapper/UserMapper.php +++ b/DataMapper/UserMapper.php @@ -3,25 +3,7 @@ namespace DesignPatterns\DataMapper; /** - * DataMapper pattern - * - * Purpose: - * A Data Mapper, is a Data Access Layer that performs bidirectional transfer of - * data between a persistent data store (often a relational database) and an in - * memory data representation (the domain layer). The goal of the pattern is to - * keep the in memory representation and the persistent data store independent of - * each other and the data mapper itself. The layer is composed of one or more - * mappers (or Data Access Objects), performing the data transfer. Mapper - * implementations vary in scope. Generic mappers will handle many different domain - * entity types, dedicated mappers will handle one or a few. - * (FROM http://en.wikipedia.org/wiki/Data_mapper_pattern) - * - * The key point of this pattern is, unlike Active Record pattern, the datamodel - * follows Single Responsibility Principle. - * - * Examples: - * - DB Object Relational Mapper (ORM) : Doctrine2 uses DAO named as "EntityRepository" - * + * class UserMapper */ class UserMapper {