co-developers / ci-doctrine
CodeIgniter 3 的 Doctrine ORM 库
v2.0.2
2017-11-19 20:41 UTC
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: 2024-09-07 06:19:19 UTC
README
CodeIgniter 3 的 Doctrine ORM 库。要求
CI Doctrine 需要 PHP^5.5.9|>=7.0.8 和 CodeIgniter 3.x 才能运行。安装
在您的计算机上安装 Composer 并在 CodeIgniter 项目的根目录中运行命令composer require co-developers/ci-doctrine。库的配置
在 CodeIgniter 中启用 Composer
要在 CodeIgniter 中启用 Composer,打开文件application/config.php 并在 $config 数组中指定 Composer 的 autoload.php 文件的路径: $config['composer_autoload'] = 'vendor/autoload.php';。复制 database.yml 文件
文件 application/libraries/doctrine/database.yml 包含了 Doctrine 用于连接数据库的配置。在开始使用 CI Doctrine 之前,您需要将此文件复制到 application/config 文件夹中。在 yml 文件中,active_group 键指示 Doctrine 使用哪个参数组来访问数据库(development、testing 或 production)。库的自动加载
要在 CodeIgniter 中自动加载库,打开文件application/config/autoload.php 并将字符串 'doctrine' 添加到 $autoload['libraries'] 数组中。请记住禁用 CodeIgniter 的 Database 库。创建文件夹结构
在开始创建实体之前,必须创建以下文件夹:application/ORM/Entity:在此文件夹中创建实体。application/ORM/Repository:在此文件夹中为每个实体生成存储库。application/ORM/Proxy:在此文件夹中为每个实体生成 Proxy 类。
请注意,在生成每个实体之前,必须在类的声明文件中指定
namespace。同样,存储库也适用。实体的 namespace 是 Entity,存储库的 namespace 是 Repository。复制并配置 cli-config.php(Doctrine 控制台)
要使用 Doctrine 控制台,请将文件 application/libraries/doctrine/cli-config.php 复制到 CodeIgniter 项目的根目录中,即在控制器前端 index.php 和 Composer 的 vendor 目录相同的目录中。然后,在同一文件中检查变量 $application_path 是否正确(CodeIgniter 中 application 目录的相对路径)。完成此步骤后,您就可以通过命令行执行 Doctrine 控制台来创建实体、仓库、代理类,从元数据创建数据库表等。要查看可用的命令列表,请在 shell 中执行 $ php vendor/bin/doctrine(Linux)或 vendor\bin\doctrine(Windows),从项目根目录开始。复制文件 MY_Controller.php(可选)
如果您愿意,可以使用在文件 application/libraries/doctrine/MY_Controller.php 中声明的 MY_Controller 类作为 CodeIgniter 的基控制器。如果我们扩展了所有控制器以从 MY_Controller 继承,我们就可以在每一个控制器中通过 $this->em 属性访问 EntityManager 实例。要开始使用这个核心控制器扩展,我们首先需要启用库的自动加载,然后将文件 application/libraries/doctrine/MY_Controller.php 复制到 application/core 目录。复制文件 Doctrine_cli.php(可选)
如果您愿意,可以使用在文件 application/libraries/doctrine/Doctrine_cli.php 中声明的 Doctrine_cli 控制器,以便从 CLI 简单地执行 Doctrine 控制台的命令。将文件 application/libraries/doctrine/Doctrine_cli.php 复制到 application/controllers 目录。要使用
Doctrine_cli,请在 shell 中执行 php index.php doctrine_cli/comando(从项目根目录开始),其中 comando 是对应于 Doctrine 控制台特定命令的控制器动作。请参阅 Doctrine CLI 命令 部分以查看可用的动作列表。Doctrine CLI 命令
控制器Doctrine_cli.php 提供以下动作:doctrine_cli/generate_entities:从元数据生成实体。请注意,在执行此命令之前,您必须在application/ORM/Entity目录中仅使用属性和元数据生成实体(注解格式)。此命令将自动生成getters和setters方法。doctrine_cli/generate_proxies:从application/ORM/Proxy目录中的实体生成代理类。dontrine_cli/generate_repositories:从实体的元数据生成仓库。它们将在application/ORM/Repository目录中生成。doctrine_cli/create_schema:从实体的元数据生成整个数据库结构。doctrine_cli/update_schema:从实体的元数据更新数据库结构。建议使用--force参数。doctrine_cli/convert_mapping_from_db:进行数据库反向工程。具体来说,它从数据库结构生成注解格式的元数据。元数据在实体类中指定。