Skip to content

FJavierGil/baseDoctrine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MiW: base Doctrine

MIT license Minimum PHP Version Scrutinizer analysis results

🎯 Proyecto básico con ORM Doctrine y Dotenv

Este proyecto pretende servir como base para hacer más sencilla la gestión de datos en PHP. En concreto, se ha utilizado el ORM Doctrine, que es un Object-Relational Mapper que proporciona persistencia transparente para objetos PHP. Emplea el patrón Data Mapper con el objetivo de obtener un desacoplamiento completo entre la lógica de negocio y la persistencia de los datos en los sistemas de gestión de bases de datos (SGBD).

Adicionalmente, este proyecto se apoya en el componente Dotenv para facilitar su configuración a través de variables de entorno. Esto permite que cualquier configuración que pueda variar entre diferentes entornos pueda ser establecida en variables de entorno, tal como se aconseja en la metodología “The twelve-factor app” ✅.

🛠️ Instalación de la aplicación

Para realizar la instalación de la aplicación crearán un usuario, contraseña y base de datos en el SGBD. A continuación se debe crear una copia del fichero ./.env y renombrarla como ./.env.local (si se ejecuta en entornos basados en contenedores Docker, el fichero se deberá llamar ./.env.docker). A continuación se editará este fichero para asignar los parámetros:

  • (opcional) Configuración del servidor de bases de datos
  • Nombre de la base de datos
  • Configuración del acceso a la base de datos (usuario y contraseña)

Una vez editado el anterior fichero, desde el directorio raíz del proyecto se ejecutarán los comandos:

$> composer update
$> php bin/doctrine.php orm:schema-tool:update --dump-sql --force

Para comprobar la validez de la información de mapeo y la sincronización con la base de datos:

$> php bin/doctrine.php orm:validate-schema

🗄️ Estructura del proyecto:

A continuación se describe el contenido y estructura del proyecto:

  • Directorio bin:
    • Ejecutables (doctrine.php)
  • Directorio src:
    • Subdirectorio src/Entity: entidades PHP (incluirán ATRIBUTOS de mapeo del ORM)
    • Subdirectorio src/scripts: scripts de ejemplo
    • Subdirectorio src/Utility: clases DoctrineConnector y Utils (proporcionan el gestor de entidades)
  • Directorio vendor:
    • Componentes desarrollados por terceros (Doctrine, Dotenv, etc.)