November 26, 2011

windows + xampp でFuelPHPのoilコマンド。

windows + xamppでoilコマンド使えないかなーということで。

以下に書かれているコマンドに成功しました。
http://press.nekoget.com/fuelphp_doc/packages/oil/generate.html
具体的には "$ php oil g controller posts action1 action2 action3" です。

手順をメモします。
尚、以下のコマンドは全て"oil"ファイルがある場所で実行しています。
すなわち、fuelディレクトリやpublicディレクトリがある場所です。


(1)
まず、php.exeにパスを通します。
xampp/phpディレクトリになります。

パスを通すのには、以下が便利です。
■Redmond Path
http://www.forest.impress.co.jp/lib/sys/wincust/registry/redmondpath.html

また、コマンドプロンプトは個人的に使いにくく、NYAOSがおすすめです。
UNIXライクです。現在の最新は"NYAOS 3.x"です。
今回はwindowsの話なので"Windows binary"をDLすれば良いかと。

■NYAOS
http://www.nyaos.org/index.cgi


(2)
ココまでの話での備考。

実は今回はNYAOSではなく、Aptana + portablegitによる
Aptanaのターミナルから実行して確認しています。
尚、パスを通した後に再起動必要かも。


(3)
とりあえずhelpを実行してみます。
$ php oil help

以下が表示されれば、めでたし。
--
Usage:
php oil [cells|console|generate|help|test]

Runtime options:
-f, [--force] # Overwrite files that already exist
-s, [--skip] # Skip files that already exist
-q, [--quiet] # Supress status output
-t, [--speak] # Speak errors in a robot voice

Description:
The 'oil' command can be used in several ways to facilitate quick development, help with
testing your application and for running Tasks.

Documentation:
http://fuelphp.com/docs/packages/oil/intro.html
--


(4)
$ php oil g controller posts action1 action2 action3
も実行してみましょう。ごそごそとファイルが生成されればOKと思います。


(5)
上記、coreディレクトリやpackagesディレクトリを移動して無ければうまくいくはずですが、
移動している場合、もう少し、やることがあります。

私の場合、coreディレクトリやpackagesディレクトリは
http://madroom-project.blogspot.com/2011/11/windows-xampp-fuelphp.html
のように、共通的な場所(各種ライブラリフォルダ)に移動させているので、
前述のコマンドを実行するとエラーになりました。

なので、oilファイルを修正します。
とは言っても、coreディレクトリやpackagesディレクトリの移動に伴う
public/index.phpの修正と似たような感じです。

define('APPPATH', realpath(__DIR__.'/fuel/app/').DIRECTORY_SEPARATOR);
の下に
require_once(APPPATH.'config/config.localhost.php');
を記述。
oilはローカルで実行できれば良いので、ハードコーディング。
config/config.localhost.phpについては、前述のURLの記事を御覧ください。

PKGPATHとCOREPATHの宣言部を修正。
それぞれ、以下にする。
define('PKGPATH', realpath(ENV_PKGPATH).DIRECTORY_SEPARATOR);
define('COREPATH', realpath(ENV_COREPATH).DIRECTORY_SEPARATOR);

これで、コマンド実行時のエラーは発生しなくなりました。
ローカル用のconfigファイルも共通化出来たし、良かった。

No comments:

Post a Comment