[英]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.