Quantcast
Channel: 一言多いプログラマーの独り言
Viewing all articles
Browse latest Browse all 846

「Phoenix」フレームワークでプラグ(Plug)

$
0
0
Phoenix」フレームワークでプラグ(Plug)です。さあ、わからなくなってきました。こういうものがあると受け入れて、深く考えずに次に進むしかありません。
プラグは、Webアプリケーションの構成モジュールの仕様です。 また、Webサーバの接続アダプタの抽象化層でもあります。 プラグの基本的な考え方は、「接続」の概念を統一することです。 これは、リクエストとレスポンスがミドルウェアに分離されるような、HTTPミドルウェア層のRackなどとは異なります。

プラグには function plugs と module plugs の2種類があります。
/web/router.ex

defmodule HelloPhoenix.Plugs.Locale do
import Plug.Conn
@locales ["en", "fr", "de"]

def init(default), do: default
def call(%Plug.Conn{params: %{"locale" => loc}} = conn, _default) when loc in @locales do
assign(conn, :locale, loc)
end
def call(conn, default), do: assign(conn, :locale, default)
end

defmodule HelloPhoenix.Router do
use HelloPhoenix.Web, :router

pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
plug :fetch_flash
plug :protect_from_forgery
plug :put_secure_browser_headers
plug HelloPhoenix.Plugs.Locale, "en"
end

scope "/", HelloPhoenix do
pipe_through :browser # Use the default browser stack

get "/", PageController, :index
end
end

参考サイト
Plug(Phoenix)
Rails と Rack(Ruby on Rails ガイド)

Viewing all articles
Browse latest Browse all 846

Latest Images

Trending Articles