PHPackages                             maximo-perez-villalba/framework-dao - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. maximo-perez-villalba/framework-dao

ActiveLibrary[Framework](/categories/framework)

maximo-perez-villalba/framework-dao
===================================

El proyecto implementa un framework liviano de persistencia orientado a objectos escrito en PHP. El framework esta basado en el patrón de diseño DAO (Data Access Object) y aunque su principal fin es pedagógico, el framework es completamente funcional.

1.6.0(4y ago)1121proprietaryPHPPHP &gt;=7.4

Since Apr 30Pushed 4y ago1 watchersCompare

[ Source](https://github.com/maximo-perez-villalba/framework-dao)[ Packagist](https://packagist.org/packages/maximo-perez-villalba/framework-dao)[ RSS](/packages/maximo-perez-villalba-framework-dao/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (4)Used By (1)

framework-dao
=============

[](#framework-dao)

El proyecto implementa un framework liviano de persistencia orientado a objectos escrito en PHP. El framework esta basado en el patrón de diseño DAO (Data Access Object) y su fin principal es de apoyo pedagógico.

Instalación
-----------

[](#instalación)

Se puede instalar `framework-dao` a través de Composer.

1 Desde una consola de comandos ir al directorio del proyecto y ejecutar:

```
composer require maximo-perez-villalba/framework-dao

```

2 También agregando en el archivo `composer.json`, dentro de la sección `"require"`.

```
"require": {
  "maximo-perez-villalba/framework-dao": ">=1.0.0"
},

```

2.1 Luego desde una consola de comandos ejecutar:

```
composer update

```

Documentación
-------------

[](#documentación)

### Patrón DAO

[](#patrón-dao)

El patrón DAO propone una solución al problema de persistir **objetos** en distintos medios de almacenamiento como son: xml, json, bases de datos relacionales o no, almacenamiento en la nube, etc. Buscando independizar **los objetos del modelo** de **los medios concretos donde se persisten** y permitiendo la cohexistencia de multiples medios de almacenamiento simultaneos.

Al hablar de persistencia de objetos, son 4 las operaciones elementales que son necesarias:

- **Guardar** un nuevo objeto
- **Leer** uno o una lista objectos
- **Actualizar** un objeto
- **Eliminar** un objeto

Operaciones conocidas por sus siglas en ingles CRUD (Create, Read, Update, Delete).

La implementación del patrón DAO esta basado en el patrón estructural [Decorator](https://es.wikipedia.org/wiki/Decorator_(patr%C3%B3n_de_dise%C3%B1o)). De tal manera que los objetos DAO envuelven a los objetos del modelo. Permitiendo de esta manera un bajo nivel de acoplamiento de **los objetos del modelo** con **los objetos DAO** que implementan la lógica de persistencia.

[![image:uml-clas-dao-pattern.png](/docs/uml-class-dao-pattern.png)](/docs/uml-class-dao-pattern.png)

El diagrama de clases muestra el diseño de implementación del patrón DAO, poniendo todo el comportamiento CRUD dentro de la [clase DAO](/src/framework/dao/DAO.php) y requiriendo de **los objetos del modelo** extender de la [clase Persistent](/src/framework/dao/Persistent.php).

#### Como usar

[](#como-usar)

```
