「http://docs.symfony.gr.jp/symfony2/cookbook/doctrine/reverse_engineering.html」に書いてありますが、簡単に書くとこんな感じです。
1. 対象のテーブルが入っているデータベースの設定をapp/config/parameters.iniに記載する。
2. データベースからEntityの元となる情報をxmlファイルとして生成する
1 2 |
$ php app/console doctrine:mapping:convert xml ./src/My/SeminarBundle/Resources/config/doctrine/metadata/orm --from-database --force Processing entity "Seminar" |
./src/My/SltBundle/Resources/config/doctrine/metadata/orm配下に「.orm.xml」と言う名前で以下のファイルが生成される。
以下は Seminar.orm.xml の例です。
1 2 3 |
http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> DEFERRED_IMPLICIT |
該当バンドルに作りたくないEntityはそのファイルを削除してください。
3. xmlファイルからEntityクラスを生成する。
1 2 3 |
$ php app/console doctrine:mapping:import MySeminarBundle annotation Importing mapping information from "default" entity manager > writing /home/hoge/public_html/tktrac/src/My/SeminarBundle/Entity/Seminar.php |
4. Entityクラスにゲッター/セッターメソッドを生成する
1 2 3 4 |
$ php app/console doctrine:generate:entities MySeminarBundle Generating entities for bundle "MySeminarBundle" > backing up Seminar.php to Seminar.php~ > generating My\SeminarBundle\Entity\Seminar |
以上で、既存のテーブルからEntityクラスを生成することができました!