2017-06-12 14 views
1

Doctrine 2.5をPSR-4オートローディングで使用し、既に設計されたデータベーススキーマをエンティティクラス(アノテーション)に変換します。問題は、エクスポートされたファイルを正しいディレクトリ構造で取得することです。Doctrineエンティティをデータベースから生成し、PSR-4オートローディングを使用する方法

composer.json

{ 
    "autoload": { 
     "psr-4": { 
      "Application\\": "src/" 
     } 
    }, 
    "require": { 
     "doctrine/orm": "^2.5" 
    } 
} 

ORM:変換マッピング

vendor/bin/doctrine orm:convert-mapping \ 
    --namespace='Application\Entity\' \ 
    --force \ 
    --from-database \ 
    annotation \ 
    src/ 

src/Applicationディレクトリを追加します。このコマンドを実行します。 生成されたクラスファイルの名前空間は正しくありますが、PSR-4標準の間違ったディレクトリにあります。

<?php 

namespace Application\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* User 
* 
* @ORM\Table(name="user") 
* @ORM\Entity 
*/ 
class User 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer", nullable=false) 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    private $id; 


} 

2次コマンドなしでこれを解決する方法はありますか?

答えて

0

これには、doctrine cliのオプションがありません。私はちょうどあなたのアプリケーションモジュールからディレクトリ構造を変更するソリューションを参照してください。ここで私はすべてのApplicationモジュールのソースコードはもうsrc/Applicationないsrc/に置かれますcomposer.json

{ 
    "autoload": { 
     "psr-4": { 
      "Application\\": "src/Application/" 
     } 
    }, 
    "require": { 
     "doctrine/orm": "^2.5" 
    } 
} 

を変更します。したがって、doctrine cliディレクトリApplication/Entitysrcに作成すると、yol psr-4オートローダーと一致します。

関連する問題