Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


apricot:usage:ja:middleware

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン 両方とも次のリビジョン
apricot:usage:ja:middleware [2020/08/03 11:51]
tanaka [ミドルウェアの構成]
apricot:usage:ja:middleware [2020/08/12 10:08]
y2sunlight
行 6: 行 6:
  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-07-29//  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-07-29//
  
-[[apricot:usage:ja|Apricotの使用法 に戻る]]+[[apricot:usage:ja|Apricot ドキュメント に戻る]]
  
 目次 目次
  
 +  * [[apricot:usage:ja:features|Apricot 特徴と概要]]
   * [[apricot:usage:ja:config|Apricot 配置と構成]]   * [[apricot:usage:ja:config|Apricot 配置と構成]]
 +  * [[apricot:usage:ja:errors-logging|Apricot ログとエラー処理]]
   * [[apricot:usage:ja:http|Apricot リクエストとレスポンス]]   * [[apricot:usage:ja:http|Apricot リクエストとレスポンス]]
   * [[apricot:usage:ja:frontend|Apricot フロントエンド]]   * [[apricot:usage:ja:frontend|Apricot フロントエンド]]
行 16: 行 18:
   * Apricot ミドルウェア   * Apricot ミドルウェア
   * [[apricot:usage:ja:controller|Apricot コントローラ]]   * [[apricot:usage:ja:controller|Apricot コントローラ]]
-  * [[apricot:usage:ja:errors-logging|Apricot ログとエラー処理]] 
   * [[apricot:usage:ja:utility|Apricot ユーティリティ]]   * [[apricot:usage:ja:utility|Apricot ユーティリティ]]
  
行 26: 行 27:
  
 === ミドルウェア構造 === === ミドルウェア構造 ===
-{{:apricot:ext:ext-fig01.svg?nolink&800}}+{{:apricot:usage:ja:middleware:ext-fig01.svg?nolink&800}}
  
 上図のような処理のネスト構造を ''パイプライン'' (pipeline) と呼び、特に多層になったミドルウェア構造を ''ミドルウェアパイプライン'' と呼ぶ事にします。 上図のような処理のネスト構造を ''パイプライン'' (pipeline) と呼び、特に多層になったミドルウェア構造を ''ミドルウェアパイプライン'' と呼ぶ事にします。
行 32: 行 33:
 Apricotには以下のミドルウェアが実装されています。 Apricotには以下のミドルウェアが実装されています。
  
-  * [[apricot:ext:access-log|アクセスログ]] +  * アクセスログ 
-  * [[apricot:ext:csrf|CSRF対策]] +  * CSRF対策 
-  * [[apricot:ext:user-auth|ユーザ認証]]+  * ユーザ認証
  
 ミドルウェアパイプラインを含めたミドルウェアの仕組みはApricotのコアの機能として実装しますが、上記のような具体的なミドルウェアの実装はアプリ側で行います。 ミドルウェアパイプラインを含めたミドルウェアの仕組みはApricotのコアの機能として実装しますが、上記のような具体的なミドルウェアの実装はアプリ側で行います。
  
-冒頭の[[#ミドルウェア構造|ミドルウェア構造]]の図から分かるように、ミドルウェアの役割は自分を処理の後に次のプロセッサーに制御を渡すことです。この時、プロセッサーにはミドルウェアとアクションの両方があるので、前出の [[#Invokerインターフェース|Invoker インターフェース]]を使います。ミドルウェアは任意タイミングで Invokerを 使うことができるので、前処理、後処理またはその両方ができます。また、クライアントの要求を自分だけで消費して Invoker を使うことなく自分のレスポンスを返すことも可能です。+==== Middleware インターフェース ==== 
 + 
 +冒頭のミドルウェア構造の図から分かるように、ミドルウェアの役割は自分を処理の後に次のプロセッサーに制御を渡すことです。この時、プロセッサーにはミドルウェアとアクションの両方があるので、前出のInvoker インターフェースを使います。ミドルウェアは任意タイミングで Invokerを 使うことができるので、前処理、後処理またはその両方ができます。また、クライアントの要求を自分だけで消費して Invoker を使うことなく自分のレスポンスを返すことも可能です。
  
 {{fa>folder-open-o}} ** /apricot/core/Foundation/Middleware ** {{fa>folder-open-o}} ** /apricot/core/Foundation/Middleware **
 <code php Middleware.php> <code php Middleware.php>
 <?php <?php
-namespace Core\Foundation\Middleware;+namespace Apricot\Foundation\Middleware;
  
-use Core\Foundation\Invoker; +use Apricot\Foundation\Invoker; 
-use Core\Foundation\Response;+use Apricot\Foundation\Response;
  
 /** /**
行 54: 行 57:
 { {
     /**     /**
-     Process incoming requests and produces a response +     Processes an incoming request and produces a response
-     * @param Invoker $next Next invoker +     * 
-     * @return \Core\Foundation\Response if return response, then don'true call next action+     * @param Invoker $next Next invoker. 
 +     * @return \Apricot\Foundation\Response if return response within this method, then don'call the next action.
      */      */
     public function process(Invoker $next) :Response;     public function process(Invoker $next) :Response;
apricot/usage/ja/middleware.txt · 最終更新: 2020/09/03 13:46 by y2sunlight