Akelosでモジュールを使う
一般的にWEBアプリで管理画面を作る場合、通常のURLとは違い
http://〜/admin/[controller]/[action]
というURLを使いたくなる。Akelosでコレを実現する場合はとりあえずモジュールを使えばおk。
たとえば上記の例の場合、まずURLルーティングを行うためにconfig/routes.phpを編集する
config/routes.php
<?php $Map->connect('/admin/:controller/:action/:id',array('module' => 'admin', 'controller' => COMPULSORY, 'action' => 'index'));
こんな感じで書けば「/admin/〜」へのアクセスはadminモジュールとして処理される。
モジュールを使う際の基本ルールは以下のような感じ
- controllerファイル: app/controllers/[module_name]/[controller_name]_controller.php
- controllerクラス名: [ModuleName]_[ControllerName]Controller
- viewファイル: app/views/[module_name]/[controller_name]/[action_name].tpl
これに従って、adminモジュールでuserクラスを使用する場合はこうなる。
app/controllers/admin/user_controller.php
<?php Admin_UserController extends ApplicationController { function index(){} }
app/views/admin/user/index.tpl
<h1>ユーザ管理画面</h1> このページはユーザ管理画面です。
上記のようにすれば「http://〜/admin/user/index」にアクセスして利用することができるようになる。
ちなみにこの機能を使うと、view内の全てのurlヘルパーを使ったurl出力に「module」パラメータが付与される。
これがいやな場合は、コントローラに以下の記述を入れればよい。
<?php Admin_UserController extends ApplicationController { function index(){} function defaultUrlOptions($options) { $this->module_name = null; return parent::defaultUrlOptions($options); } }