ブログの管理画面
ブログの管理画面に最低限必要なのは、ログイン認証と/admin~などのモジュールとしてアクセスできるようにすることです。
こういうのをサクッとつくるのに、Akelosにはadminプラグインという便利なプラグインがあります。
Akelosのプラグイン
AkelosにもRailsのようなプラグイン機構があります。
現在リリースされているプラグインだったり、プラグインの入れ方などは以下のWikiに書いてあります。
Available plug-in repositories., Akelos PHP Framework Wikiここに書いてあるように、登録されているプラグインは、
> php script/plugin discover
で知ることができます。
adminプラグイン
今回は、ブログの管理画面をつくるのに、adminプラグインを使用しました。
このプラグインはブログなどの管理画面機能(ログインやらアクセス制御やら)を、URL /admin~でモジュールとして作成してくれます。
自力でconfig/routes.phpをいじったりしてモジュール化するのに試行錯誤してうまくいかないでいたので、このプラグインには助けられた。。
ただし、Akelos0.8ではインストールできませんでした。使うにはSVN版である必要があります。
インストールは、
> php script/plugin install admin
ここで、Fatal error: Call to undefined function curl_init() in ・・・
というエラーがでたら、
php.iniのextension=php_curl.dllのコメントをはずして有効にするとうまくいきました。
これで、
config/routes.phpの先頭に、
$Map->connect('/admin/:controller/:action/:id', array('controller' => 'dashboard', 'action' => 'index', 'module' => 'admin'));
が追加され、/adminにアクセスでログイン認証、管理画面が使えるようになっているはずです。
admin_scaffold
adminプラグインをインストールすると、admin_scaffoldというコマンドが使えるようになります。
これはscaffoldをadminモジュール配下でうまいことやってくれるコマンドです。
フツーのscaffoldを
> php script/generate scaffold admin/weblog
とやってもadminモジュール以下にscaffoldできますが、Helperの対応づけなどがうまくいきません。
> php script/generate admin_scaffold weblog
と、admin_scaffoldコマンドでやると、Helperの対応づけもうまいことやってくれます。
実際、できあがったソースをみると、$controller_menu_optionsなんかはarrayのネストの嵐。。。ここまでやらんとモジュールうまく機能しないのか!?
ブログの管理機能なんてのは、自分しか使わないものですから、admin_scaffoldで生成したCRUDで十分です。
ブログアプリのメインは管理機能ではありませんから、管理機能はadminプラグインでサクッとつくって、メインに力を注ぐというのがよいのではないでしょうか。