Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend 1.11和条令2自动从现有数据库生成所需的一切_Php_Zend Framework_Doctrine_Doctrine Orm - Fatal编程技术网

Php Zend 1.11和条令2自动从现有数据库生成所需的一切

Php Zend 1.11和条令2自动从现有数据库生成所需的一切,php,zend-framework,doctrine,doctrine-orm,Php,Zend Framework,Doctrine,Doctrine Orm,我是ORM新手,我非常渴望学习它。通过遵循本教程,我成功地用Zend 1.11.x安装了条令2.1的所有类和配置 它使用Bisna插件和条令脚本 现在我的问题是,他清楚地解释了如何通过条令类创建实体和表,但没有解释如何从现有数据库自动生成代理和repo类,这有助于我选择、插入和更新。我总是使用MySQL工作台创建数据库 我也遵循了下面的教程 我的数据库是如此复杂,各种可能的关系贯穿其中。如果我遵循这些教程中介绍的步骤,我将永远无法完成我的项目。请任何人解释一下配置后如何开始使用条令。考虑到我已

我是ORM新手,我非常渴望学习它。通过遵循本教程,我成功地用Zend 1.11.x安装了条令2.1的所有类和配置

它使用Bisna插件和条令脚本

现在我的问题是,他清楚地解释了如何通过条令类创建实体和表,但没有解释如何从现有数据库自动生成代理和repo类,这有助于我选择、插入和更新。我总是使用MySQL工作台创建数据库

我也遵循了下面的教程

我的数据库是如此复杂,各种可能的关系贯穿其中。如果我遵循这些教程中介绍的步骤,我将永远无法完成我的项目。请任何人解释一下配置后如何开始使用条令。考虑到我已经有一个数据库,我的模型文件夹是空的。我的文件夹结构如下

    C:/zf/library/Doctrine
    C:/zf/library/Symfony
    C:/zf/library/ZC -- (my model which should contain the proxies and repo of Doctrine. At the moment it contains nothing.)
    C:/zf/library/Zend
C:/zf/scripts/doctrine.php
请帮帮我

我昨天发了同样的帖子,没有人回复我的帖子。如果您需要我提供更多信息,请告诉我

谢谢,


Karthik

如果我正确理解您的问题,您已经配置了实体,需要自动生成代理和存储库类

可以使用以下CLI命令从应用程序的根目录创建这两个命令:

php scripts/doctrine.php orm:generate-proxies

php scripts/doctrine.php orm:generate-repositories library/
如果您正在寻找一种自动生成实体类的方法,不幸的是,我认为目前还没有解决方案


该网站的一位支持代表表示,他们正在“开发”这一功能,而且“需求量很大”这里希望它能包含在ORM Designer 2.0中,因为编码/映射实体类通常会涉及大量重复性工作,这些工作可能是自动化的。

如果以XML或YAML格式提供映射信息,则可以使用
ORM:generate entities
命令

对于开发,请在配置中将代理生成设置为自动,否则,请使用
orm:generate proxies
命令

除非您需要自定义存储库,否则会在实体管理器中根据请求创建通用存储库。要指定自定义存储库,只需使用
存储库类
实体映射属性


请参见示例

根据原则,您应该首先自己创建实体,然后从这些实体创建数据库模式

但是因为你已经有了一个数据库,你可能不想这样。可以将数据库转换为PHP、XML或Yaml中的Doctrine2实体

你应该仔细看看Bisna glue提供的命令行工具,因为在那里你可以生成很多东西

<>从数据库中生成实体考虑以下命令:

php doctrine.php orm:convert-mapping --from-database php ../library/Application/Entity
您还可以定义名称空间和基类,实体必须使用这些名称空间和基类进行扩展:--namespace=namespace和--extends=class

Doctrine2警告您将数据库转换为实体,因为并非所有内容都可以自动检测或支持。例如,Doctrine2默认情况下不支持枚举数据类型,因此转换数据库将引发错误

在使用之前,最好检查所有实体,尤其是关联。希望对你有帮助