WindowsのXAMPP環境でzf.batでproject以外がエラーでこける
自サイトを作成しよう!と思い立ち(会社の仕事ついでに)Zend_Toolを利用としたらいろいろと問題が出てきた。
使っているバージョンは以下の通りです。
現在当たった問題
[CC]zf create module [module_name][/CC]
等をしようとすると、「A project profile was not found」みたいなエラーが出る。
※profileとは「.zfproject.xml」の事です。
Zend_Tool以下をあさってみた
Zend_Toolだけでも結構な量のファイルがあるので、CUI環境にて、「find ./ -type f -name "*.php" | xargs grep "project profile"」で検索してみた。
すると、「Zend/Tool/Project/Provider/Abstract.php」で同じ文字列を発見したので、開いてみた。
いろいろ検証すると、どうやら同ファイル内の138行目付近にある以下のソースが問題のようでした。
$projectDirectoryAssembled = DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR, $parentDirectoriesArray);
多分、LinuxとかUNIX系環境でルートから検索を掛ける(この方が読み込み早くなるため)ようにしてたみたいです。
ただ次の行で分岐してるんですけどね・・・
if (DIRECTORY_SEPARATOR !== "\\") {$projectDirectoryAssembled = DIRECTORY_SEPARATOR . $projectDirectoryAssembled;
}
おもいっきりLinux、UNIX系にFixしてますよね・・・
ということで直してみた
$projectDirectoryAssembled = DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR, $parentDirectoriesArray);
の行を以下のように修正。
$projectDirectoryAssembled = implode(DIRECTORY_SEPARATOR, $parentDirectoriesArray);
再チャレンジ!
projectを作ったディレクトリ内で、適当にcreateアクションを使ってみます。
zf create module default
うごいた!
これで無事WindowsのXAMPP環境でZend_Toolを利用してController等を作る事が出来るようになりました。
この現象はもしかして俺だけなのかなぁ。。。