Edited at

不便なCodeIgniterでのCRUD開発が劇的に楽になる「Grocery CRUD」

More than 5 years have passed since last update.

CodeIgniterに代表される軽量フレームワークは、Ruby on Railsに代表されるようなScaffoldで、MVCを自動生成しないため、毎回同じようにCRUDを作るときのMVCのコードをガリガリと手作業で入力するときの無駄さ加減を馬鹿馬鹿しく感じているエンジニアは多いだろう。

また、短期間である程度完成された見栄えのCRUD画面を作成するときにScaffoldで生成された大量のファイルを一つ一つ編集する行為も気が引けるエンジニアも多いだろう。

ちょうどDjangoみたいにmodel.pyにテーブルの定義を書いてadmin.pyにregistするだけで簡単に管理画面のようなクールなデザインのCRUD画面が出来上がるといった具合のプラグインをググっていたところ、「Grocery CRUD」を発見した。

基本的には、公式サイト ( http://www.grocerycrud.com/ ) からソースをダウンロードして、CodeIgniterのソースが置かれいるディレクトリと同じ階層にペーストすれば設置完了で、

application/controllers/examples.php

を参考にCRUD画面を作ればいいわけだが、

テーブルごとにメソッドを作成するのも面倒だ。

そういうときは以下のようにURLでテーブル名を渡せばCRUD画面になる。

テーブルが見つからなかった時等のエラー処理は省いてあるが、基本はこれだけで動く。

たったの8行だから驚きだ。


application/controllers/admin.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Admin extends CI_Controller{
public function index($table_name){
$this->load->library('grocery_CRUD');
$this->grocery_crud->set_table($table_name);
$this->load->view('example.php', $this->grocery_crud->render());
}
}

これさえ作ってしまえば、これ以降に同じようなデータベースのテーブルベースに基づく管理画面の作成は、データベースにテーブルを作成するだけで、最低限の成果物は提供できるようになる。

もちろんこれで出来上がる画面は管理画面として最低限であるが、

カラム名を日本語に変えたり、バリデーションも定義できたり、

リレーションのあるテーブルをドロップダウンリストにできたりもする。

また、テキストボックスをFCKエディタにできたり、

レイアウトもベータ版ではあるが、今流行のTwitter bootstrapを指定できたりする。

詳しくは公式サイトをご覧下さい。

http://www.grocerycrud.com/

英語で書かれてますが、唯一「Grocery CRUD」について詳しく書かれているサイトと言ってもいいでしょう。でも、わかりやすいです。