やっぱ必要だろうということで

「今月はドキュメント強化月間だ!」といいつつActiveGatewayにかまけて何も手をつけれてなかったのですが、月の後半でドキュメント強化をやっていこうと思います。

で、ドキュメントですが今までいろいろな発表とかやってきましたが、いまいち理屈っぽい感じだったのでこれを打破するためにはやっぱファイル生成スクリプトが必要かなと思いはじめました。

んで、bobchinさんのcreateactionをベースにコマンドラインで動作するファイル生成スクリプトを準備しようかなと思っています。ファイル生成といってもあんまり複雑なものを出力するのではなくて、最低限のファイルを所定の場所につくってくれる程度でも制作のスピードアップになるかなと。

考えているのはこんな感じ。

  • 現状のmaple,webapp,htdocsと並列のディレクトリにbinディレクトリを新設
  • bin/generate とする(.phpをつけるかはまだきめてない)
  • ファイル生成スクリプトが生成するものは、「action」「template」「entry」「component」の4つとする。(もっといりますかね?)
  • actionファイルを生成するために以下のような指定をする。
    • bin/generate action sample_form sample_form index という形で実行する。
    • action後の1つ目の引数でaction名を指定し、actionの規約にのっとって、modulesディレクトリ以下にクラスファイルとmaple.iniを出力する。
    • クラスファイルは規約どおりのクラス名をつけ、'success'を返すだけのexecuteメソッドをいれておく。
    • maple.iniにはViewセクションのみ出力し、successの場合にaction名に合わせてテンプレート名を入れておく
    • 2つ目の引数はtemplateファイルの指定で、省略できることとする。
    • templateファイルに関しては指定された文字列を「_」で分けて、最後から1つ前までをディレクトリ名とし、最後のものに「.html」をつけたファイル名とする。
    • templateファイルには「Hello!, Maple」程度の記述をつけておく。(スケルトンファイルをそのまま出すという方式になるかな?)
    • 3つ目の引数を指定されている場合はその文字列で入り口phpを出力する(この引数はもちろん省略可)。デフォルトのaction名を指定されたaction名にしておく。
  • templateを生成するためには以下のような指定をする
    • bin/generate template sample_form という形で実行する。
    • 出力するものは上記actionのやり方に順ずる
  • 入り口PHPを生成するためには以下のような指定をする
    • bin/generate entry index という形で実行する。
    • 出力するものは上記actionのやり方に順ずる
  • componentクラスを生成するためには以下のような指定をする
    • bin/generate component sample.logic という形で実行する。
    • component 後の1つ目の引数でcomponent名を指定し、componentの規約にのっとって、componentsディレクトリ以下にクラスファイルを出力する。
    • クラスファイルは規約どおりにファイル名をつけておく。

「bin/gererate action sample_form sample_form index」とやれば、とりあえずコマンド一発で、「/index.php?action=sample_form」でページが出力されるというものができるので、そこから随時組み立てていけばいいのでそんな感じでいいかなと。

あとFilterとConverterとValidatorもこれで出力できた方がいいすかね?一応出力できるようにしてみるかな。あって邪魔にはならんだろうから。

後はこのコマンドに対する拡張性を持たせて自分の好きなパーツをこのコマンド経由で出力できるようにしておきたいなとは思います。

これができれば最初の方向けのドキュメントは書きやすくなると思うので、がんばって実装しちゃいたいと思います。

ご意見等ありましたら、いつもどおりコメントお願いします。