【Laravelの機能についてまとめてみよう】~~~Routing編~~~

laravel

今回は、【Laravelの機能についてまとめてみよう】第一弾です。
第一弾は….. 『Routing』についてです!!

※Laravel バージョンは8をベースにしております。

目次

――――――――――――――――――――――――――――
① Routingとは
② 基礎
③ 発展
④ まとめ
――――――――――――――――――――――――――――

① Routing とは

Routing(ルーティング)は特定のURLにアクセスされたときに「どのような処理をするのか」といったことを定義することです。
例)https://*** といったサイトがあるとします。
https://***/loginにアクセスされた場合にどう処理をするのか指定することができます。
以下のサイトも参考にしてみてください。
↓↓※公式リファレンスを日本語訳しているサイト↓↓
https://readouble.com/laravel/8.x/ja/routing.html

② 基礎

すべてのLaravelルートは、routesディレクトリにあるルートファイルで定義します。これらのファイルはApp\Providers\RouteSerciveProviderに記載されているのもを自動的に読み込んでいます。

デフォルトでは、以下の4つのファイルがあります。それぞれみていきましょう。
project
├─ app
├─ 略(config database public 等)
├─ resoures
├─ routes
│  ├─ api.php
│  ├─ channels.php
│  ├─ console.php
│  └─ web.php

【api.php】
api.phpには、APIとしてステートレスに使いたいルートを定義します。
記載例)

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

※ここで定義したルートはapiミドルグループウェアに割り当てられ、URIに /api というプレフィックスがつきます。

【channels.php】
channels.phpは、ブロードキャストのチャンネルを登録するために使います。
記載例)

Broadcast::channel('App.Models.User.{id}', function ($user, $id) {
    return (int) $user->id === (int) $id;
});

※ブロードキャストについての詳細は以下のサイトをご覧ください。
https://readouble.com/laravel/8.x/ja/broadcasting.html

【console.php】
console.phpは、コンソールベースのエントリポイントを定義するために使います。
記載例)

Artisan::command('inspire', function () {
    $this->comment(Inspiring::quote());
})->purpose('Display an inspiring quote');

※Artisanコンソールについての詳細は以下のサイトをご覧ください。
https://readouble.com/laravel/8.x/ja/artisan.html

【web.php】
web.phpには、Webからアクセスしてほしいルートを定義します。
記載例)

Route::get('/', [HomeController::class, 'index'])->name('home');
Route::get('login', [LoginController::class, 'showLoginForm');
Route::post('login', [LoginController::class, 'login');

※ここで定義したルートはwebミドルグループウェアに割り当てられ、セッション状態やCSRF保護などの機能が提供されます。例えばPOSTメソッドで定義したルートはCSRF保護され、正しいCSRFトークンを含まないリクエストは拒否されます。詳細は以下のサイトをご覧ください。
https://readouble.com/laravel/8.x/ja/routing.html

③ 発展

基礎はデフォルトで用意されているRoutingファイルをみていきました。
発展では独自のカスタムRoutingファイルの作成について調べていきましょう!

デフォルトのRouteファイルは4つあるものの、実際に処理を記載するのは、ほぼweb.phpになります。
そこで、web.phpの肥大化を防ぐために新たなRouteファイルを追加して処理を分ける必要があります。その方法をまとめていきたいと思います。
(※今回はwebと同じmiddleware群を使用します。)

[1] Route定義ファイルの追加
project
├─ 略(app config database public resources 等)
├─ routes
│  ├─ api.php
│  ├─ channels.php
│  ├─ console.php
│  ├─ web.php
│  └─ sample.php (追加ファイル)

[2] サービスプロバイダに追加ファイルの登録
Routeを管理している App\Providers\RouteServiceProvider.phpのbootメソッドにある、$this->routes();のコールバックfunctionにsampleのRouteを渡す。
例)

$this->routes(function () {
    Route::middleware('api')
        ->prefix('api')
        ->group(base_path('routes/api.php'));
                         
    Route::middleware('web')
        ->group(base_path('routes/web.php'));
                         
    Route::prefix(sample)
        ->as('sample.')
        ->middleware('web')
        ->group(base_path('routes/sample.php'));
});

※webとは違うmiddleware群を使用したい場合は、App\Http\Kernel.phpの$middlewareGroupsに新しく記載する。
例)webのmiddlewareGroups

'web' => [
    \App\Http\Middleware\EncryptCookies::class,
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    \App\Http\Middleware\VerifyCsrfToken::class,
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],

④ まとめ

このようにURLを指定したり、フォームからデータ送信する際に「処理先(ルート)」を決めるのがLaravelのRoutingとなります。

以上、簡単にではありますが大まかなRoutingについてまとめてきました。
Routeを深堀りするとまだまだまとめきれてないことが多いので
次の機会に紹介できればと思います!

PANTONE COLOR OF THE YEAR 2023はViva Magenta(ビバマゼンタ)

PANTONEからカラーオブザイヤー2023が発表されました。
PANTONE COLOR OF THE YEAR 2023

2023年のトレンドカラーは「PANTONE 18-750 Viva Magenta(ビバマゼンタ)」。
青味がかった彩度の低い、自然な赤色ですね。

PANTONEのCOLOR OF THE YEAR、Viva Magenta 18-750 は、鮮やかで活力に満ちています。赤系の自然に根ざし、新たな力強さを表現する色合いです。ビバ マゼンタは勇敢で恐れを知らず、脈動する色であり、その活気が喜びに満ちた楽観的なお祝いを促進し、新しい物語を書きます。
今年のCOLOR OF THE YEARはパワフルで力を与えてくれます。それは、純粋な喜びに満ちた生き生きとした赤であり、抑制のない実験と自己表現を奨励し、刺激的で、際立ったステートメントとして現れる無限の色合いです。PANTONE 18-1750 Viva Magenta は、同じ生命力と反骨精神を持つすべての人を歓迎します。大胆で機知に富み、すべてを包括する色です。

カラーデータ

HEX #BE3455
sRGB 190 52 85
LAB 46.05, 58.95, 17.38

Photoshopのカラーピッカーではこんな感じです。

PANTONE CONNECT

PANTONE CONEECTではAdobe系のカラースウォッチで使えるASEファイルがダウンロードできます。
また、Viva Magentaを元にしたカラーパレットやシェードも用意されています。
PANTONE CONNECT(要会員登録)