田舎の技術者が奮闘中

php ruby node.js javascript などのスクリプト言語とサーバー(Chef、Vagrant)に関して書きます。

cakephpのコマンドをまとめた!

cakephpにはcakeコンソールという便利なコマンド類が存在する。
私は「bake」か「schema」ぐらいしか使わないのだが、今回を期に他のコマンドを調べてみた。
cakephpのversionは2.2.2です。)

まず「cake」だけ叩いてみる。
(app/Console/cakeに内包されている)

$ app/Console/cake

ゴニョゴニョと色々出てきますが、「Current Paths:」でパスを確認して、正しければそのまま行きます。
もしパスが違うのであれば「Changing Paths:」の手順に沿ってパスを変更します。
「Available Shells:」に利用可能なコマンドが並んでいるので1つずつ確認してみます。

  1. acl
  2. api
  3. bake
  4. command_list
  5. console
  6. i18n
  7. schema
  8. test
  9. testsuite
  10. upgrade

むっ以外に多い・・・
では一個づつヘルプを確認してみます。

acl

アクセス制限とかを制御していくれるらしいですけど。。。はっきりいうと面倒くさいです。
普通のアプリケーションを作る上では特に必要は無い気がしますが。。。使ってみると非常に便利なコンポーネントです。
acl」に関しては別の記事にて説明したいと思います。

api

ソース上のブロックコメントを検索して、それを表示してくれるみたいです。
あんまり使わない気がしますが、コードレビューなどの際に約に立ちそうです。

bake

色々なソースのフォーマットを作ってくれます。
便利かつ強力です。(railsのScaffoldみたいなものです。)

サブコマンド 説明
all MVC全部作る。 オプションでModel名を渡せばそれに沿って作ってくれる。 (まぁ使う)
project 新たにプロジェクトを作る。パスを指定してなかったら、カレントディレクトリに作る。
plugin プラグインを作る。フォルダも勝手に作ってくれる。
db_config database.phpを作る。
model Modelを作る (超使う)
view Viewを作る (超使う)
controller Controllerを作る(超使う)
fixture fixtureを作る (たま~に使う)
test testを作る(テスト書くときは使う。)

覚えておけばいいのは「all」と「model」と「view」と「controller」だけでいいと思います。
ControllerやViewなどはCRUDなども自動で作ってくれますので、重宝します。(コピペなんてナンセンスですからね。)
bakeに関しては、また別記事にて書きたいですね。

command_list

まぁコマンドリストです。「$ app/Console/cake」と同じ動きなので、特に説明はありません。

console

テストに使えるっぽい。テスト前に実行とか会ってあったんで、テスト駆動開発とかで約に立つのかも。

i18n

国際化用のテーブルとかを操作したりできます。これもあんまり使わない気がします。

schema

開発するときにDB更新が発生すると思いますが、このコマンドでメンバー間とのDB同期が取れます。
(fixtureとかも流用するとテストデータを一気に流し込んだり出来ます。)
覚えていると非常に便利です。
railsのようなmigration機能は無いですが・・・まぁ無いと開発できないことは無いので別にいらないです。)

サブコマンド 説明
view ファイルの中身が見れる。(使わない)
generate 現在のテーブル構成を読み取り、Schemeファイルを作る。(まぁ初回だけだね)
dump schemaをSQLクエリでダンプする。(レンタルサーバーとかにリリースするときに重宝)
create Schemeファイルからテーブルを作成する。(超使う)
update Schemeファイルからテーブルを更新する。(超使う)

test testsuite

テストをコンソール上で走らせることができます。
こちらも出来れば別記事で。

upgrade

1.3から2.0にアップグレードできるみたいです。
(怖くて使えない・・・)

まとめ

本当にごく一部だけ説明しました。
特に「bake」と「scheme」はよく使うと思いますので、覚えといて損はしません。
次回はちょっと細かい部分まで説明できればいいなぁと思います。