Nullyのぶろぐ

仙台で働くエンジニアの日記

WindowsのXAMPP環境でzf.batでproject以外がエラーでこける

自サイトを作成しよう!と思い立ち(会社の仕事ついでに)Zend_Toolを利用としたらいろいろと問題が出てきた。

使っているバージョンは以下の通りです。

  • Windows:XP(VMWare
  • XAMPP:1.7.2(最新)
  • PHP:5.3(XAMPPに同梱されてる物)

現在当たった問題

[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;

}

おもいっきりLinuxUNIX系にFixしてますよね・・・

ということで直してみた

$projectDirectoryAssembled = DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR, $parentDirectoriesArray);

の行を以下のように修正。

$projectDirectoryAssembled =  implode(DIRECTORY_SEPARATOR, $parentDirectoriesArray);

再チャレンジ!

projectを作ったディレクトリ内で、適当にcreateアクションを使ってみます。

zf create module default

うごいた!

ピクチャ 1

これで無事WindowsのXAMPP環境でZend_Toolを利用してController等を作る事が出来るようになりました。

この現象はもしかして俺だけなのかなぁ。。。