PHPAnnotation できたよ
というわけで今週取り組んでいた PHP で Annotation の作業が1段落ついたので codecheck.in にコミットしました。よかったら見てくださいな。
使い方はこんな感じ。
<?php class SampleAction { /** * Required アノテーションがついてるので * このフィールドは必須チェックが実行されます * @Required * @var string */ public $name; /** * アクションを実行します * Validation を実行します。Validation が失敗した * 場合は hoge に遷移します * @Execute(input=hoge) */ public function validateExecute() { } /** * アクションを実行します * Validation は実行しません * @Execute(validate=false) */ public function notValidate() { ; } }
簡単な解説。まず $name に Required アノテーションがついています。なので必須チェックされます。Validation は function 単位の実行が可能で function には Execute アノテーションをつけます。
validateExecute は Validation を行い、検証に失敗した場合は input で指定された値を参照して画面遷移します(未実装)。Execute アノテーションの validate=false にした場合、 Validation は実行されません。notValidate function がこの例です。
明日からはフロントコントローラーの設計を始めます。
追記
codecheck.in は実行環境つきです。素晴らしい。
なので、早速実行してみました。
<?php include_once 'RequestProcessor.php'; include 'action/SampleAction.php'; $action = new SampleAction(); $method = 'validateExecute'; $processor = new RequestProcessor(); $valid = $processor->processValidate($action, $method); print_r($valid); $method = 'notValidate'; $valid = $processor->processValidate($action, $method); if ($valid == null) { echo 'valid is null'; } ?>
PHPAnnotation
実行できた! やった!