ここ連日Doctrine2と戯れていますが、コマンドが使えないと非常に不便なので何とかした話。
全然難しいことはなかったので、後回しにするんじゃなかった。
事前準備
以前の記事と同じ構成の環境を使うので、同じ様にセットアップしておく。
http://qiita.com/gyhino@github/items/188d207d26f608269b3a
やることの整理
- コマンドの在処の確認
- 設定
- 使えるか確認
コマンドの在処の確認
Doctrine2のコマンドはcomposerでインストールした場合、vendor/bin
に置かれている。
今回インストールした先は、app/vendor
なのでapp/vendor/bin/doctrine
が存在する。
oil
に組み込むのを紹介している記事もあったが、そのまま使えるので今回はそのまま使うことにする。
設定
cli-config.php
を作って動くようにする。
実行時にカレントディレクトリ、もしくはカレントディレクトリのconfig
ディレクトリのcli-config.php
を読み込むので、
参照しやすい場所に置いておく。
今回はプロジェクトのrootディレクトリに置くことにした。(core
,packages
,app
と同列の場所)
<?php
/**
* Website document root
*/
define('DOCROOT', __DIR__.DIRECTORY_SEPARATOR);
/**
* Path to the application directory.
*/
define('APPPATH', realpath(__DIR__.'/fuel/app/').DIRECTORY_SEPARATOR);
/**
* Path to the default packages directory.
*/
define('PKGPATH', realpath(__DIR__.'/fuel/packages/').DIRECTORY_SEPARATOR);
/**
* The path to the framework core.
*/
define('COREPATH', realpath(__DIR__.'/fuel/core/').DIRECTORY_SEPARATOR);
// Boot the app
require APPPATH.'bootstrap.php';
// Setup ConsoleRunner
$em = \Fuel\Doctrine::manager();
return ConsoleRunner::createHelperSet($em);
使えるか確認
以下のコマンドでhelpが表示されれば使える。
./app/vendor/bin/doctrine
yaml
などからEntity
を作りたい場合は、
./app/vendor/bin/doctrine orm:generate-entities ./app/classes
yaml
などからRepository
を作りたい場合は、
./app/vendor/bin/doctrine orm:generate-repositories ./app/classes
という風に使う。