Rewish

WindowsでCakePHPコンソール(bake)を使い易くする方法

CakePHP v1.3.0-betaが出ていたので、久しぶりにWindows上でCakePHPを使ってみました。

普段からWindowsのMS-DOSコマンドプロンプトを使うことがほとんど無い僕は、CakePHPのコンソール(bake)を使うために、いちいちコマンドプロンプトを立ち上げてcdで移動して・・・と言う作業が凄く面倒に感じた訳です。

なので、そんな僕の悩みを解決するため、簡単なバッチファイルを書いてみました。

バッチファイルの使い方

以下のコードを console.bat など適当な名前で保存し、cake(コア)フォルダと同じディレクトリに置いて実行して下さい。

自動的にpath\to\cake\consoleへのパスを通し、コマンドを入力可能な状態にしてくれます。

後はプロジェクトフォルダ(appなど)に移動して、cake bakeやら何やらお好きにどうぞ状態です。簡単ですね。

バッチファイルのソースコードと解説

@echo off

goto console

:init
rem Path
if exist "%CD%\cake\console" (
  set "CAKECONSOLE=%CD%\cake\console"
) else (
  if exist "%CD%\..\cake\console" (
    set "CAKECONSOLE=%CD%\..\cake\console"
  ) else (
    echo cake\consoleが見つかりませんでした。
    echo.
    echo cake\consoleのパスを入力して下さい。
    set /p CAKECONSOLE=:
  )
)
set "PATH=%PATH%;%CAKECONSOLE%"
rem Alias
doskey cat=type $*
doskey ls=dir /w $*
doskey ll=dir $*
doskey la=dir /a $*
doskey rm=del $*
exit /b

:console
if "%1" equ "init" (
  call :init
) else (
  prompt $P$_$G$S
  start "" /b %COMSPEC% /k %~f0 init
)

cake\consoleへパスを通す

まずバッチファイルの実行フォルダと同階層でcake\consoleの存在をチェックし、あれば%PATH%にパスをセットして次へ。

無ければ、一階層上のフォルダでcake\consoleを探します。デフォルトのフォルダ構成で開発してる場合は、プロジェクトフォルダ(app)にバッチファイルを置くとスムーズです。

cake\consoleが見つからない場合はパスを入力する画面になります。

Aliasの設定

lsとかcatとか打っちゃって悲しい気分になるのを防ぎます。

PHPのパスも通したい場合

19行目を以下のように変更。

set "PATH=%PATH%;%CAKECONSOLE%;PHPのパス"

PHPのパスはC:\phpC:\xampp\phpなどですね。

まとめ

  • バッチファイルをcake(コア)フォルダと同じ階層に配置
  • バッチファイルを実行してCakePHPコンソールを堪能
  • おまけ機能でcake(コア)フォルダの一階層上に置いても動く