我已根据本文成功安装并使用了原则:Getting started with Doctrine。
现在我想对现有数据库进行逆向工程。我尝试运行以下命令:
php vendor/doctrine/orm/bin/doctrine orm:convert-mapping --from-database annotation entity/generated
并生成具有正确注释的实体文件。但是,我想生成setter和getter而不是自己编写代码。
很多人都在提到这篇文章:How to generate Entities from an Existing Database。文章中的第一个命令是:
php app/console doctrine:mapping:import --force AcmeBlogBundle xml
我找不到安装Symfony和Doctrine的app文件夹和控制台文件。我的composer.json文件内容是:
{
"require": {
"doctrine/orm": "2.4.*",
"symfony/yaml": "2.*"
},
"autoload": {
"psr-0": {"": "src/"}
}
}
我从Doctrine入门文章中得到了这个。我在composer.json文件中缺少依赖项吗?我在哪里可以找到app / console?
编辑1:
Paul Andrieux,我添加了#34; symfony / framework-standard-edition":" 2.5。*"到我的composer.json文件。现在我有一个文件夹供应商/框架标准版。这包含一个包含控制台文件的app文件夹。但是,我收到一个错误,因为" console"脚本正在尝试" require_once DIR 。' /bootstrap.php.cache'"并且bootstrap.php.cache不存在。该文件应包含什么内容?我需要自己创建吗?创建或获取此文件后,我应该采取哪些其他步骤?
答案 0 :(得分:1)
我找到了生成Getter& amp; Setters只使用Doctrine ORM。
你应该使用orm:convert-mapping
生成XML映射文件然后使用orm:generate-entities
生成XML到PHP类
orm:convert-mapping [--filter FILTER] [-f|--force] [--from-database] [--extend [EXTEND]] [--num-spaces [NUM-SPACES]] [--namespace [NAMESPACE]] [--] <to-type> <dest-path>
orm:generate-entities [--filter FILTER] [--generate-annotations [GENERATE-ANNOTATIONS]] [--generate-methods [GENERATE-METHODS]] [--regenerate-entities [REGENERATE-ENTITIES]] [--update-entities [UPDATE-ENTITIES]] [--extend EXTEND] [--num-spaces NUM-SPACES] [--no-backup] [--] <dest-path>
一个。我composer.json
(我使用的是学说2.5。*)
...
"require": {
"doctrine/orm": "^2.5"
},
...
B中。配置cli工具
我的cli-config.php
注意:使用方法createXMLMetadataConfiguration
NOT createAnnotationMetadataConfiguration
<?php
$db = [
// ...
];
$paths = [ __DIR__ . '/../Model/'];
// this place should use function Setup::createXMLMetadataConfiguration
$config = \Doctrine\ORM\Tools\Setup::createXMLMetadataConfiguration($paths, false);
$entityManager = \Doctrine\ORM\EntityManager::create($db, $config);
return \Doctrine\ORM\Tools\Console\ConsoleRunner::createHelperSet($entityManager);
℃。生成XML
php vendor/bin/doctrine orm:convert-mapping -f --namespace='Model\' --from-database xml app/Model
在文件app/Model
中设置路径paths
必须与cli-config.php
匹配
d。生成PHP类
php vendor/bin/doctrine orm:generate-entities --generate-annotations="true" app/
这将为您想要的内容生成正确的内容和正确的命名空间
答案 1 :(得分:0)
根据你的composer.json文件,你没有安装symfony2,只有它的yaml组件。
如果您想安装symfony2完整堆栈,请按照本指南进行操作:http://symfony.com/get-started