このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
apricot:app:top [2020/05/09 09:53] y2sunlight [layout.blade.php] |
apricot:app:top [2020/05/25 12:03] y2sunlight [layout.blade.php] |
||
---|---|---|---|
行 14: | 行 14: | ||
* [[apricot: | * [[apricot: | ||
* [[apricot: | * [[apricot: | ||
- | * [[apricot: | + | * [[apricot: |
* [[apricot: | * [[apricot: | ||
* [[apricot: | * [[apricot: | ||
- | * [[apricot: | + | * [[apricot: |
- | \\ | ||
まずは、apricotのアプリを作る為に以下を準備します。 | まずは、apricotのアプリを作る為に以下を準備します。 | ||
行 214: | 行 213: | ||
\\ | \\ | ||
+ | ===== 例外クラス ===== | ||
+ | |||
+ | まず最初に、アプリで発生する例外を様々な例外クラスのベースとなる 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: | 行 354: | ||
{{-- | {{-- | ||
- | @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: | 行 396: | ||
</ | </ | ||
- | <footer class=" | + | <footer class=" |
{!! DebugBar:: | {!! DebugBar:: | ||
</ | </ | ||
行 334: | 行 414: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
* テンプレード変数 '' | * テンプレード変数 '' | ||
* フラッシュ変数 '' | * フラッシュ変数 '' | ||
行 339: | 行 420: | ||
* **ボイラープレート** | * **ボイラープレート** | ||
- | * '' | + | * '' |
* '' | * '' | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
- | >''< | + | >''< |
HTMLテンプレートに関しては本編[[http:// | HTMLテンプレートに関しては本編[[http:// | ||
行 472: | 行 554: | ||
* @return \Core\Foundation\Response | * @return \Core\Foundation\Response | ||
*/ | */ | ||
- | function index(int $no=null) | + | |
{ | { | ||
$title = "Stub {$no}"; | $title = "Stub {$no}"; | ||
行 508: | 行 590: | ||
{{-- コンテンツ --}} | {{-- コンテンツ --}} | ||
@section(' | @section(' | ||
- | @foreach($messages as $message) | + | |
- | < | + | |
- | @endforeach | + | < |
+ | @endforeach | ||
+ | @endif | ||
@endsection | @endsection | ||
</ | </ | ||
行 517: | 行 601: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
HTMLテンプレートに関しては本編[[http:// | HTMLテンプレートに関しては本編[[http:// |