CakePHP の cake コマンドは bake くらいしか使っていなかったのですが、cakephper さんの以下のエントリで console api というのを知りました。
console api を使ってみた & 不具合があったのでチケット投げた – cakephperの日記(cakePHP1.2ベース)

モデルやヘルパーなどのコアライブラリの API の説明をみることができるものです。

$ cake api model


とやると以下のようにモデルのメソッドの一覧がでます。

Welcome to CakePHP v1.2.2.8120 Console
---------------------------------------------------------------
App : app
Path: /path/to/app
---------------------------------------------------------------
Model
---------------------------------------------------------------
1. afterFind($results, $primary = false)
2. afterSave($created)
3. beforeDelete($cascade = true)
4. beforeFind($queryData)
5. beforeSave($options = array())
6. beforeValidate($options = array())
7. bind($model, $options = array(), $permanent = true)
8. bindModel($params, $reset = true)
9. create($data = array(), $filterKey = false)
10. deconstruct($field, $data)
11. del($id = null, $cascade = true)
12. delete($id = null, $cascade = true)
13. deleteAll($conditions, $cascade = true, $callbacks = false)
14. escapeField($field = null, $alias = null)
15. exists($reset = false)
16. field($name, $conditions = null, $order = null)
17. find($conditions = null, $fields = array(), $order = null, $recursive = null)
18. findAll($conditions = null, $fields = null, $order = null, $limit = null, $page = 1, $recursive = null)
19. findAllThreaded($conditions = null, $fields = null, $order = null)
20. findCount($conditions = null, $recursive = 0)
21. findNeighbours($conditions = null, $field, $value)
22. getAssociated($type = null)
23. getColumnType($column)
24. getID($list = 0)
25. hasAny($conditions = null)
26. hasField($name)
27. invalidFields($options = array())
28. invalidate($field, $value = true)
29. isForeignKey($field)
30. isUnique($fields, $or = true)
31. joinModel($assoc, $keys = array())
32. read($fields = null, $id = null)
33. remove($id = null, $cascade = true)
34. save($data = null, $validate = true, $fieldList = array())
35. saveAll($data = null, $options = array())
36. saveField($name, $value, $validate = false)
37. schema($field = false)
38. set($one, $two = null)
39. setDataSource($dataSource = null)
40. setInsertID($id)
41. setSource($tableName)
42. unbindModel($params, $reset = true)
43. updateAll($fields, $conditions = true)
44. updateCounterCache($keys = array(), $created = false)
45. validates($options = array())

Select a number to see the more information about a specific method. q to quit. l to list.
[q] >

説明を見たいメソッドの番号を選択するとそのメソッドの説明が表示されます。

[q] > 1
---------------------------------------------------------------
Model::afterFind($results, $primary = false)
---------------------------------------------------------------

  Called after each find operation. Can be used to modify any results returned by find().
  Return value should be the (modified) results.

  @param mixed $results The results of the find operation
  @param boolean $primary Whether this model is being queried directly (vs. being queried as an association)
  @return mixed Result of the find operation
  @access public
  @link http://book.cakephp.org/view/681/afterFind

Select a number to see the more information about a specific method. q to quit. l to list.
[q] >

表示原理は

結果として出力される説明は、メソッドの手前に記述されているコメントを抽出して出力しているだけですが、ネット環境がなくて簡単に調べたいときには使えるかも。

ということだそうです。
しかし、コーディング中に引数とかを調べるためにソースを見ているので、ちょっとした調べ物のときにはこれは便利かもしれません。

$ cake api helper form

とすれば Form ヘルパーのメソッドの説明をみることができます。

以下の動画で Gwoo が CakePHP に関してプレゼンしていてその中で簡単に console api に関しても触れています。1時間弱の動画ですが、console 以外にもかなり面白かったです。

関連する投稿