Catalyst::Plugin::AutoCRUDを試してみた
Catalystでcrud提供するモジュール何があるかなーと探してた。
http://dev.catalystframework.org/wiki/crud
このページのモジュール名から、お手軽に実装出来そうなCatalyst::Plugin::AutoCRUDを試してみた。
インストール
cpan Catalyst::Plugin::AutoCRUD
以上。
ただし、デモ環境を試したいのであればソースを取得しておくこと。
exampleを試す
ソース取得
wget http://search.cpan.org/CPAN/authors/id/O/OL/OLIVER/Catalyst-Plugin-AutoCRUD-0.68.tar.gz tar zxvf Catalyst-Plugin-AutoCRUD-0.68.tar.gz cd Catalyst-Plugin-AutoCRUD-0.68
DB環境構築。
現存するDB環境を使いたい場合は、
この手順を無視してdemo.confのDB設定を変更するだけでもok。*1
cd examples/sql perl bootstrap_sqlite.pl
デモサーバ起動。
cd ../demo/ perl server.pl
これだけで動くよ!
一から作りなおしてみる(ローカルのredmineデータベースをCRUD化する設定例)
アプリケーション雛形
catalyst.pl MyCrud::Web cd MyCrud-Web/ # アプリケーション用にテンプレートを変えたい場合、AutoCRUDの雛形からコピーしておく cp Catalyst-Plugin-AutoCRUDダウンロードフォルダ/lib/Catalyst/Plugin/AutoCRUD/templates ./root cp Catalyst-Plugin-AutoCRUDダウンロードフォルダ/lib/Catalyst/Plugin/AutoCRUD/static ./root
プラグインに「AutoCRUD」追加
vi lib/MyCrud/Web.pm
use Catalyst qw/ -Debug ConfigLoader Static::Simple AutoCRUD /;
「アプリケーション用のテンプレートを使う設定」をコンフィグに記述
vi mycrud_web.conf
<Plugin::AutoCRUD> tt_path /path/to/MyCrud-Web/root/templates/full-fat </Plugin::AutoCRUD>
スキーマクラス生成
script/mycrud_web_create.pl model DB DBIC::Schema MyCrud::Schema create=static 'dbi:mysql:redmine:localhost' user password
完成したのでアクセスしてみる
問題点も
日本語が化ける
これクリティカルなんですが。いろいろと文字化け対応してみたのですが結局うまくいかなかった
でもまあ
手間をかけずリッチなCRUDが出来ちゃうので試してみる価値はあるかもです!
もっと細かい設定もできるのでドキュメント参照してみてください
http://search.cpan.org/dist/Catalyst-Plugin-AutoCRUD/lib/Catalyst/Plugin/AutoCRUD.pm#TIPS_AND_TRICKS
*1:DBIx::Class::Schema::Loaderで動的生成しているため