刺身の上にたんぽぽ乗せる日記

プログラミングしたり、自販機の下に落ちてる小銭を集めたりしてます

ethnaのプロジェクトを2以前から2に移行する方法

ethnaのページに書いてある通り、ethna自体はbackword compatibleなので、そのまま上書きすればおk。ただ、action_cliとか使いたいじゃん?ethna add-action-cliとかやりたいじゃん?

というわけで情報がethnaのページで見つからなかったので*1、自分でやった手順を書いておく。

  • 2系で同一のプロジェクト名でプロジェクトを作る
  • /skelを2系から今までのに移す
  • プロジェクトのディレクトリにある.ethnaをコピー。中身はこんなの。

[project]
controller_file = "app/なんとか_Controller.php"
controller_class = "なんとか_Controller"

まぁ、空気を読んで修正。プロジェクト名が同一なら多分修正の必要無し。

  • controllerのclassを修正。
    • diff見ればわかると思うけど、2系から増えてるのがあるので、一部加える。

var $directory = array(
'action' => 'app/action',
'etc' => 'etc',
'filter' => 'app/filter',
'locale' => 'locale',
'log' => 'log',
'plugins' => array(),
'template' => 'template',
'template_c' => 'tmp',
'tmp' => 'tmp',
'view' => 'app/view',
'action_cli' => 'app/action_cli',
'action_xmlrpc' => 'app/action_xmlrpc',
'app' => 'app',
'bin' => 'bin',

);

こんな感じでおk。追加分はaction_cliあたりから。

なんか忘れてるかもしんないけど、基本的にこんな感じ。

ちなみにethnacliを使う方法も公式ページで見つからなかったんだけど*2、やり方は以下の通り。

  • ethna add-action-cli -e name projectpath でテンプレート生成。
  1. project/binに実行エントリポイントがある。project/app/action_cli/の下に対応したactionがある。実装はactionで、実行はbinのほうで。

けど何故か俺がやるとdbつながらないんだよな。プロジェクトの移行に失敗してるのか、dbの設定が悪いのか何なのか全くわからないけど。

*1:5秒くらいしか調べてないけど

*2:2秒くらいしか調べてないけど