gpt4 book ai didi

doctrine-orm - 从 Mysql 数据库生成模型

转载 作者:行者123 更新时间:2023-12-02 17:43:07 26 4
gpt4 key购买 nike

我正在从事使用 Doctrine 的项目。所以我开始学习 Doctrine 并编写简单的测试并停留在一开始。我以前开发过很多 cakePHP 应用程序,我对蛋糕烘焙有很好的想法。

我有一个测试 mysql 数据库和其中的 2 个表。我想生成所有模型类作为开始,我想将它们包含在我的 MVC 应用程序的 Controller 中以进行 CRUD。

我使用 composer 安装了 Doctrine,并在项目文件夹中得到了一个名为/vendor 的文件夹。在项目文件夹中创建了一个新的 bootstrap.php

/vendor
/bootstrap.php

bootstrap.php 中的代码是

<?php

// bootstrap.php
require_once "vendor/autoload.php";

use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;

$paths = array("/path/to/entities-or-mapping-files");
$isDevMode = false;

// the connection configuration
$dbParams = array(
'driver' => 'pdo_mysql',
'user' => 'root',
'password' => '',
'dbname' => 'test',
);

$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
$em = EntityManager::create($dbParams, $config);

我看到在旧版本中有一个名为 Doctrine_Core::generateModelsFromDb 的方法。

我只想从基本模型开始,并想知道如何将它们包含在其他 PHP 文件中以进行 CRUD。

最佳答案

我了解到您想从数据库中生成一组实体类和映射信息。使用 Doctrine 你需要实体类和它们的映射信息。映射信息基本上是一堆 .yml 或 .xml 文件。这两件事都可以使用 Doctrine 提供的工具从数据库中生成。这通常在项目开始时完成一次。从映射信息中,Doctrine 可以自动生成您可以在代码中使用的 PHP 类(例如,持久化实体)。映射信息也可以作为伪注释添加到类中,但我没有这方面的经验,所以我不会深入讨论。

你要找的命令是

php doctrine orm:convert-mapping --from-database yml /path/to/mapping-path-converted-to-yml

这假设你已经配置了 Doctrine 来访问你的数据库。

完成此操作后,您可以生成实体

php doctrine orm:generate-entities

这应该创建用于 CRUD 操作的类。要使用这些类,您只需将它们包含在您的代码中,然后使用 EntityManager 对象对其进行操作。

可在此处找到有关逆向工程的更多信息:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/tools.html#reverse-engineering

顺便说一句,如果您在 MySQL Workbench 文件中有一个模式,则有一些脚本可以从中生成实体类和映射信息。

关于doctrine-orm - 从 Mysql 数据库生成模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18048165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com