このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
apricot:app:top [2020/05/09 09:03] y2sunlight [コントローラ] |
apricot:app:top [2020/06/03 13:11] (現在) tanaka [クラスエイリアス] |
||
|---|---|---|---|
| 行 14: | 行 14: | ||
| * [[apricot: | * [[apricot: | ||
| * [[apricot: | * [[apricot: | ||
| - | * [[apricot: | + | * [[apricot: |
| * [[apricot: | * [[apricot: | ||
| * [[apricot: | * [[apricot: | ||
| - | * [[apricot: | + | * [[apricot: |
| - | \\ | ||
| まずは、apricotのアプリを作る為に以下を準備します。 | まずは、apricotのアプリを作る為に以下を準備します。 | ||
| 行 32: | 行 31: | ||
| ==== appフォルダ ==== | ==== appフォルダ ==== | ||
| - | 以下に示すようにプロジェクトフォルダ下に、アプリ用のフォルダ app を作成し、その下に7つのフォルダ(Controllers, | + | 以下に示すようにプロジェクトフォルダ下に、アプリ用のフォルダ app を作成し、その下に7つのフォルダ(Controllers, |
| < | < | ||
| 行 40: | 行 39: | ||
| | | ||
| | | ||
| + | | ||
| + | | ||
| + | | ||
| | | ||
| | | ||
| 行 45: | 行 47: | ||
| | | ||
| | | ||
| - | | + | |
| </ | </ | ||
| 行 146: | 行 148: | ||
| </ | </ | ||
| - | * よく使うコアクラスとアプリ用のヘルパークラスのアリアスを作っています | + | * よく使うコアクラスとアプリ用のヘルパークラスのエイリアスを作っています |
| 行 214: | 行 216: | ||
| \\ | \\ | ||
| + | ===== 例外クラス ===== | ||
| + | |||
| + | まず最初に、アプリで発生する例外を様々な例外クラスのベースとなる ApplicationException を Exceptionクラス から派生させて作ります。 | ||
| + | |||
| + | {{fa> | ||
| + | <code php ApplicationException.php> | ||
| + | <?php | ||
| + | |||
| + | namespace App\Exceptions; | ||
| + | |||
| + | use Exception; | ||
| + | |||
| + | /** | ||
| + | * アプリケーション例外 | ||
| + | */ | ||
| + | class ApplicationException extends Exception | ||
| + | { | ||
| + | /** | ||
| + | * User error message | ||
| + | * @var string | ||
| + | */ | ||
| + | private $user_message; | ||
| + | |||
| + | /** | ||
| + | * Create ApplicationException | ||
| + | * @param string $user_message | ||
| + | * @param string $internal_message | ||
| + | * @param int $code | ||
| + | * @param \Throwable $previous | ||
| + | */ | ||
| + | public function __construct(string $user_message=null, | ||
| + | { | ||
| + | $this-> | ||
| + | parent:: | ||
| + | } | ||
| + | |||
| + | /** | ||
| + | * Get user error message | ||
| + | * @return string | ||
| + | */ | ||
| + | public function getUserMessage() | ||
| + | { | ||
| + | return $this-> | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | * コンストラクタの引数のエラーメッセージが、ユーザ表示用( $user_message )と内部用( $internal_message )の2つがあります。 | ||
| + | * ユーザ表示用のメッセージは、'' | ||
| + | * コンストラクタ内で使用されているボイラープレート '' | ||
| + | |||
| + | 次に、ApplicationException から継承した楽観的ロック例外クラス OptimissticLockException を作ります。 | ||
| + | |||
| + | {{fa> | ||
| + | <code php OptimissticLockException.php> | ||
| + | <?php | ||
| + | |||
| + | namespace App\Exceptions; | ||
| + | |||
| + | /** | ||
| + | * 楽観的ロック例外 | ||
| + | */ | ||
| + | class OptimissticLockException extends ApplicationException | ||
| + | { | ||
| + | /** | ||
| + | * Create Optimisstic Lock | ||
| + | * @param string $message | ||
| + | * @param \Exception $previous | ||
| + | */ | ||
| + | public function __construct() | ||
| + | { | ||
| + | parent:: | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | * コンストラクタ内で使用されているボイラープレート '' | ||
| + | |||
| + | このようにして、アプリで発生する例外は ApplicationException から継承して作るようにします。 | ||
| + | |||
| + | \\ | ||
| ===== HTMLレイアウト ===== | ===== HTMLレイアウト ===== | ||
| 行 274: | 行 357: | ||
| {{-- | {{-- | ||
| - | @if(app_has(' | + | @if(app('auth.menu',false)) |
| <ul class=" | <ul class=" | ||
| <a id=" | <a id=" | ||
| - | {{user()-> | + | {{AuthUser:: |
| </a> | </a> | ||
| <div class=" | <div class=" | ||
| 行 316: | 行 399: | ||
| </ | </ | ||
| - | <footer class=" | + | <footer class=" |
| {!! DebugBar:: | {!! DebugBar:: | ||
| </ | </ | ||
| 行 334: | 行 417: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | * '' | ||
| * テンプレード変数 '' | * テンプレード変数 '' | ||
| * フラッシュ変数 '' | * フラッシュ変数 '' | ||
| * 最後尾に [[apricot: | * 最後尾に [[apricot: | ||
| + | * **ボイラープレート** | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| - | >''< | + | >''< |
| HTMLテンプレートに関しては本編[[http:// | HTMLテンプレートに関しては本編[[http:// | ||
| + | |||
| + | |||
| \\ | \\ | ||
| 行 465: | 行 557: | ||
| * @return \Core\Foundation\Response | * @return \Core\Foundation\Response | ||
| */ | */ | ||
| - | function index(int $no=null) | + | |
| { | { | ||
| $title = "Stub {$no}"; | $title = "Stub {$no}"; | ||
| 行 501: | 行 593: | ||
| {{-- コンテンツ --}} | {{-- コンテンツ --}} | ||
| @section(' | @section(' | ||
| - | @foreach($messages as $message) | + | |
| - | < | + | |
| - | @endforeach | + | < |
| + | @endforeach | ||
| + | @endif | ||
| @endsection | @endsection | ||
| </ | </ | ||
| 行 510: | 行 604: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| + | * '' | ||
| HTMLテンプレートに関しては本編[[http:// | HTMLテンプレートに関しては本編[[http:// | ||