■アクションクラス (Login) |
LoginAction.class.php
<?php require_once('logic/Login.class.php'); require_once(VALIDATOR_DIR . 'RegexValidator.class.php');
/** * ログインアクション */ class LoginAction extends Action { /** * すべてのビジネスロジックを実行する */ function execute(&$controller, &$request, &$user) { if ($request->getParameter('doLogin') === null) { return VIEW_INPUT; }
$retValues = array(); $logic = &new Logic_Login(); $retValues = &$logic->authenticate($request->getParameter('loginCode'), $request->getParameter('loginPass'), $request->getParameter('nextAction') ); if ($retValues['userCode'] == 'error') { $request->setAttribute('errorMessage', $returnValues['errorMessage'] ); return VIEW_ERROR; }
$user->setAuthenticated(true);
$user->setAttribute('userCode', $returnValues['userCode'], NAMESPACE_GLOBAL );
// アクションへフォワード $controller->forward($request->getParameter('nextModule'), $request->getParameter('nextAction') );
return VIEW_NONE; }
/** * アクション初期化手続きを実行する */ function initialize(&$controller, &$request, &$user) { if ($request->getParameter('doLogin') === null) { $request->setParameter('loginCode', ''); $request->setParameter('loginPass', ''); }
return true; }
/** * バリデーションエラーを扱う */ function handleError(&$controller, &$request, &$user) { $renderer = &$request->getAttribute('renderer'); $errors = $request->getErrors(); $renderer->setAttributeByRef('errors', $errors);
return VIEW_INPUT; }
/** * このアクションがサービスを受け付けるリクエストメソッドを取得する */ function getRequestMethods() { return REQ_POST; }
/** * 特別なパラメータバリデータを登録する */ function registerValidators(&$validatorManager, &$controller, &$request, &$user) { if ($request->getParameter('doLogin') === null) { return; }
// ユーザコード $validator = &new RegexValidator(); $params = array('match' => true, 'pattern' => '/^[0-9]{10}$/', 'pattern_error' => '10桁の数字を入力して下さい', ); $validator->initialize($params, $controller, $request, $user); $validatorManager->setRequired('loginCode', true, '必須項目です'); $validatorManager->register('loginCode', $validator);
// パスワード $validator = &new RegexValidator(); $params = array('match' => true, 'pattern' => '/^.{1,8}$/', 'pattern_error' => '適切な値を入力して下さい', ); $validator->initialize($params, $controller, $request, $user); $validatorManager->setRequired('loginPass', true, '必須項目です'); $validatorManager->register('loginPass', $validator); return; }
}
?>
|
|
■ビュークラス (VIEW_INPUT) |
LoginView_input.class.php
<?php /** * ログインフォームの表示 */ class LoginView extends View { /** * ビューを実行する */ function &execute(&$controller, &$request, &$user) { $renderer = &new SmartyRenderer($controller, $request, $user); $renderer->setTemplateDir(TEMPLATE_DIR); $renderer->setTemplate('SampleInput-input.tpl');
$smarty = &$renderer->getEngine(); $smarty->compile_dir = $GLOBALS['_SMARTY_COMPILE_DIR'];
$renderer->setAttribute('loginCode', $request->getParameter('loginCode') ); $renderer->setAttribute('nextModule', $request->getParameter('nextModule') ); $renderer->setAttribute('nextAction', $request->getParameter('nextAction') ); $renderer->setAttribute('backModule', $request->getParameter('backModule') ); $renderer->setAttribute('backAction', $request->getParameter('backAction') );
return $renderer; }
}
?>
|
|
■ビュークラス (VIEW_ERROR) |
LoginView_error.class.php
<?php /** * ログインエラーの表示 */ class LoginView extends View { /** * ビューを実行する */ function & execute (&$controller, &$request, &$user) { $renderer = &new SmartyRenderer($controller, $request, $user); $renderer->setTemplateDir(TEMPLATE_DIR); $renderer->setTemplate('SampleInput-input.tpl');
$smarty = &$renderer->getEngine(); $smarty->compile_dir = $GLOBALS['_SMARTY_COMPILE_DIR'];
$renderer->setAttribute('errorMessage', $request->getAttribute('errorMessage') ); $renderer->setAttribute('loginCode', $request->getParameter('loginCode') ); $renderer->setAttribute('nextModule', $request->getParameter('nextModule') ); $renderer->setAttribute('nextAction', $request->getParameter('nextAction') ); $renderer->setAttribute('backModule', $request->getParameter('backModule') ); $renderer->setAttribute('backAction', $request->getParameter('backAction') );
return $renderer; }
}
|
|