1、安装好doctrine,在composer.json中添加如下
"require": { "php": "^5.6 || ^7.0", "doctrine/doctrine-orm-module": "*", },
执行composer install
2、在yourAPP/config/modules.config.php添加doctrine module
return [ 'Zend\ServiceManager\Di', 'Zend\Session', 'Zend\Mvc\Plugin\Prg', 'Zend\Mvc\Plugin\Identity', 'Zend\Mvc\Plugin\FlashMessenger', 'Zend\Mvc\Plugin\FilePrg', 'Zend\Mvc\I18n', 'Zend\Mvc\Console', 'Zend\Log', 'Zend\Form', 'Zend\Db', 'Zend\Cache', 'Zend\Router', 'Zend\Validator', 'ZendDeveloperTools', 'Application', 'DoctrineModule', 'DoctrineORMModule', ];
3、在yourAPP/config/autoload/local.php添加如下
<?php /** * Local Configuration Override * * This configuration override file is for overriding environment-specific and * security-sensitive configuration information. Copy this file without the * .dist extension at the end and populate values as needed. * * @NOTE: This file is ignored from Git by default with the .gitignore included * in ZendSkeletonApplication. This is a good practice, as it prevents sensitive * credentials from accidentally being committed into version control. */ use Doctrine\DBAL\Driver\PDOMySql\Driver as PDOMySqlDriver; return [ 'doctrine' => [ 'connection' => [ 'orm_default' => [ 'driverClass' => PDOMySqlDriver::class, 'params' => [ 'host' => '10.11.1.2', 'port' => '3306', 'user' => 'xxx', 'password' => 'xxx', 'dbname' => 'user_shanmaohuwai', ] ], ], ], ];
4、使用doctrine命令生成entity(https://www.e-learn.cn/content/wangluowenzhang/609311)
问题:
I am using "doctrine/doctrine-orm-module": "0.7.0" with ZF2.
Once I create Entities I usually run following commands to sync and generate database automatically according to my entities.
./vendor/bin/doctrine-module orm:validate-schema
./vendor/bin/doctrine-module orm:schema-tool:create
Is there a way to make this process reverse? I mean, Can I generate entities from existing database in mysql?
回答1:
We use a batch script:
@ECHO OFF mkdir EXPORT call .\vendor\bin\doctrine-module orm:convert-mapping --force --from-database annotation ./EXPORT/ call .\vendor\bin\doctrine-module orm:generate-entities ./EXPORT/ --generate-annotations=true pause
orm:convert-mapping
and orm:generate-entities
is probably what you are looking for.
回答2:
There's a nice blog written on this here
Edit: It can be done by using the commands below:
1. convert-mapping (Table & Entity):
./vendor/doctrine/doctrine-module/bin/doctrine-module orm:convert-mapping --namespace="Album\\Entity\\" --force --from-database annotation ./module/Album/src/
2. Generates getter and setter
./vendor/doctrine/doctrine-module/bin/doctrine-module orm:generate-entities ./module/Album/src/ --generate-annotations=true
回答3:
Try just it
doctrine orm:convert-mapping -f --from-database annotation entities/ doctrine orm:generate-entities --generate-annotations="true" entities/
http://wildlyinaccurate.com/useful-doctrine-2-console-commands/