co-developers / ci-doctrine
Librería de CodeIgniter 3 para utilizar Doctrine como ORM
Installs: 41
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
Type:codeigniter-library
pkg:composer/co-developers/ci-doctrine
Requires
- php: ^5.5.9|>=7.0.8
- composer/installers: ^1.0
- doctrine/orm: ~2.5
- symfony/yaml: ~3.3.9
This package is auto-updated.
Last update: 2025-11-07 08:41:41 UTC
README
Librería de CodeIgniter 3 para utilizar Doctrine como ORM.Requisitos
CI Doctrine necesita PHP^5.5.9|>=7.0.8 y CodeIgniter 3.x para poder ser ejecutado.
Instalación
Instale Composer en su equipo y luego ejecute el comandocomposer require co-developers/ci-doctrine dentro de la raíz de su proyecto en CodeIgniter.
Configuración de la librería
Activar Composer en CodeIgniter
Para activar Composer en CodeIgniter abra el archivoapplication/config.php e indique la ruta del archivo autoload.php de Composer en el array $config de la siguiente manera: $config['composer_autoload'] = 'vendor/autoload.php';.
Copiar el archivo database.yml
El archivo application/libraries/doctrine/database.yml contiene la configuración de la conexión a la base de datos que utiliza Doctrine. Antes de comenzar a utilizar CI Doctrine debe copiar éste archivo en la carpeta application/config. Dentro del yml, la clave active_group le indica a Doctrine que grupo de parámetros utilizar para acceder a la base de datos (development, testing o production).
Carga automática de la librería
Para cargar la librería automaticamente en CodeIgniter, abra el archivoapplication/config/autoload.php y agregue el string 'doctrine' al array $autoload['libraries']. Recuerde desactivar la librería Database de CodeIgniter.
Creando la estructura de carpetas
Antes de comenzar a crear entidades se deben crear las siguientes carpetas:application/ORM/Entity: En esta carpeta se crean las entidades.application/ORM/Repository: En esta carpeta se generan los repositorios de cada entidad.application/ORM/Proxy: En esta carpeta se generan las clases Proxy de cada entidad.
Recuerde que antes de generar cada entidad debe especificar el
namespace en el archivo de declaración de la clase. Lo mismo aplica para los repositorios. El namespace de las entidades es Entity y el de los repositorios es Repository.
Copiar y configurar cli-config.php (Doctrine Console)
Para poder utilizar la consola de Doctrine, copie el archivo application/libraries/doctrine/cli-config.php en la raíz de su proyecto en CodeIginiter, o sea, en el mismo directorio del controlador frontal index.php y de la carpeta vendor de Composer. Luego verifique, en el mismo archivo, que la variable $application_path sea correcta (ruta relativa de la carpeta application de CodeIgniter). Una vez realizado este paso, ya puede ejecutar la consola de Doctrine desde la línea de comandos para crear entidades, repositorios, clases Proxy, crear las tablas en la base de datos a partir de los metadatos, etc.
Para ver la lista de comandos disponibles ejecute en la shell $ php vendor/bin/doctrine en linux o vendor\bin\doctrine en Windows, desde la raíz de su proyecto.
Copiar el archivo MY_Controller.php (opcional)
Si usted lo desea, puede utilizar la clase MY_Controller declarada en el archivo application/libraries/doctrine/MY_Controller.php como clase controladora base en CodeIgniter. Si extendemos todos nuestros controladores de MY_Controller tenemos disponibles la instancia al EntityManager en el atributo $this->em dentro de cada controlador. Para comenzar a utilizar esta extensión del controlador del core primero debemos activar la carga automática de la librería y luego debemos copiar el archivo application/libraries/doctrine/MY_Controller.php en la carpeta application/core.
Copiar el archivo Doctrine_cli.php (opcional)
Si usted lo desea, puede utilizar el controlador Doctrine_cli declarado en el archivo application/libraries/doctrine/Doctrine_cli.php para ejecutar los comandos de la consola de Doctrine desde CLI con CodeIgniter de una forma más simple. Copie el archivo application/libraries/doctrine/Doctrine_cli.php en la carpeta application/controllers.Para utilizar
Doctrine_cli ejecute en la shell php index.php doctrine_cli/comando, desde la raíz de su proyecto, donde comando puede ser una acción del controlador que corresponde a un comando específico de la consola de Doctrine. Lea la sección Comandos de Doctrine CLI para ver la lista de acciones disponibles.
Comandos de Doctrine CLI
El controladorDoctrine_cli.php dispone de las siguientes acciones:
doctrine_cli/generate_entities: Genera las entidades a partir de los metadatos. Recuerde que antes de ejecutar este comando, debe generar las entidades sólo con sus atributos y metadatos en formato de anotaciones en la carpetaapplication/ORM/Entity. Los métodosgettersysettersse generan automáticamente por dicho comando.doctrine_cli/generate_proxies: Genera las clases Proxy a partir de las entidades en la carpetaapplication/ORM/Proxy.dontrine_cli/generate_repositories: Genera los repositorios a partir de los metadatos de las entidades. Se generan en la carpetaapplication/ORM/Repository.doctrine_cli/create_schema: Genera toda la estructura de la base de datos a partir de los metadatos de las entidades.doctrine_cli/update_schema: Actualiza la estructura de la base de datos a partir de los metadatos de las entidades. Se recomienda usar el parámetro--force.doctrine_cli/convert_mapping_from_db: Realiza ingenieria reversa de la base de datos. Específicamente genera los metadatos en formato de anotaciones a partir de la estructura de la base de datos. Los metadatos son especificados en las clases de las Entidades.