簡體   English   中英

Doctrine2生成具有setter和getter的實體

[英]Doctrine2 generate entities with setters and getters

根據本文,我已經成功安裝並使用了該學說: Doctrine入門

現在,我想對現有數據庫進行反向工程。 我嘗試運行以下命令:

php vendor/doctrine/orm/bin/doctrine orm:convert-mapping --from-database annotation entity/generated

然后生成帶有正確注釋的實體文件。 但是,我想生成setter和getter,而不必自己編寫。

許多人都在參考這篇文章: 如何從現有數據庫生成實體 本文中的第一個命令是:

php app/console doctrine:mapping:import --force AcmeBlogBundle xml

從Symfony和Doctrine的安裝中找不到應用程序文件夾或控制台文件。 我的composer.json文件內容為:

{
    "require": {
        "doctrine/orm": "2.4.*",
        "symfony/yaml": "2.*"
    },
    "autoload": {
        "psr-0": {"": "src/"}
    }
}

我從《 Doctrine入門》一文中獲得了這一信息。 我是否在composer.json文件中缺少依賴項? 在哪里可以找到應用程序/控制台?

編輯1:

Paul Andrieux,我在composer.json文件中添加了“ symfony / framework-standard-edition”:“ 2.5。*”。 現在,我有一個文件夾vendor / framework-standard-edition。 這包含一個包含控制台文件的應用程序文件夾。 但是,由於“控制台”腳本正在嘗試“ require_once DIR 。'/ bootstrap.php.cache'”而bootstrap.php.cache不存在,因此出現錯誤。 該文件應包含什么? 我需要自己創建它嗎? 創建或獲取此文件后,我還應該采取什么其他步驟?

我發現僅使用Doctrine ORM即可生成Getter&Setters的方法。

您應該使用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>

A.我的composer.json (我使用的是教義2.5。*)

...
"require": {
    "doctrine/orm": "^2.5"
},
...

B.配置CLI工具

我的cli-config.php

注意:使用方法createXMLMetadataConfiguration不是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);

C.生成XML

php vendor/bin/doctrine orm:convert-mapping -f --namespace='Model\' --from-database xml app/Model

在文件cli-config.php設置時,路徑app/Model必須與您的paths匹配

D.生成PHP類

php vendor/bin/doctrine orm:generate-entities --generate-annotations="true"  app/

這將生成所需內容的正確內容和正確名稱空間

根據您的composer.json文件,您沒有安裝symfony2,而只是安裝了Yaml組件。

如果您想完全安裝symfony2,請按照本指南進行操作: http ://symfony.com/get-started

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM