Webコンサルタントの愚痴とアジャイル,生産性向上,Trac,オープンソースなどの与太話
CodeIgniterがなかなか自由度が高くて気に入っているのだけれど、一方で、Cakeみたいにbakeコマンドで、CRUDがノンコーディングで出来てしまうわけでも無いので、面倒と言えば面倒。
そういう面倒さはCodeIgniterとRapydを組み合わせてあげることで解決できそうだ。
RapydもオープンソースのPHPフレームワークで、単体で動作するバージョンと、CodeIgniterのライブラリとして動作するバージョンの二つが提供されている。
CIと組み合わせてデータの一覧画面を表示する例を以下に記述する。
まずCIのコントローラの中で、$this->rapyd->load("datagrid");として、DataGridのライブラリを呼び出して、あとはクエリを組み立て、buildコマンドで、データを生成してしまえば良い。テンプレート側に色々なコードを書かないで、テーブル、ソート機能、編集へのリンク、ページング機能が実現できる。あー簡単。
Rapydの弱点は、出力するhtmlがあんまり綺麗じゃない、という点だろう。実際に見てみると早い。
<table style="margin:0;width:100%;border-collapse:collapse;padding:0;">
<tr>
<td class="mainheader">Task List</td>
<td class="mainheader" align="right"></td>
</tr>
</table>
<div class="mainbackground" style="padding:2px;clear:both;">
<table width="100%" cellpadding="1">
<tr>
<td class="tableheader">
<table style="width:100%; border-collapse:collapse;">
<tr>
(中略)
</tr>
</table></td></tr></table></div></td></tr></table>
なんなんだ、これは・・・、というレベルの汚さ。なぜ、もうちょっとまともにclassを振らないのか。
この問題は、/application/rapyd/views/defaultにある、datagrid.phpというviewを修正すれば直る。これを自分好み、もしくは自分が構築しているシステムのレギュレーションにあわせてあげると素敵になるだろう。
よろしければ5段階評価で該当する☆をクリックしてください。
コメントはありません。是非コメントしてください。