ウェブ制作

プログラミング

【初心者向け】
Laravelの「Illuminate」
って
何だろう?

お刺身@プログラマー

お刺身@プログラマー

#Oookey_blog_007

【初心者向け】Laravelの「Illuminate」って何だろう?

みなさん、Laravelで開発していて「Illuminate」という文字を見かけたことはありませんか?
最初は「あれ?なんかおしゃれな英語だけど、何が入ってるの?」と不思議に思うかもしれません。

でも実は、Laravel の“おいしい”部分はほとんどこの Illuminate に詰まっているんです!
認証やルーティング、ビューにデータベースなど、Web アプリに必要な機能が分かりやすく整理されているので、プロジェクトを大きくしていくときにとっても役立ちます。

今回は「Illuminate っていろいろありすぎてどこから手をつけていいか分からない!」という方のために、主要なコンポーネントをざっくりまとめてみました。ちょっとした参考になれば嬉しいです!

目次

はじめに
なぜ「Illuminate」が重要なのか
Illuminate コンポーネント紹介
1. 認証やユーザー管理の要
2. イベントやリアルタイム通信
3. キャッシュ・設定・セッション管理
4. コンソールと依存注入
5. HTTPレイヤ&ルーティング
6. データベースまわり
7. セキュリティや暗号化
8. ビューやテンプレート
9. ログ・通知・メール
10.その他便利機能

まとめ

参考サイト

なぜ「Illuminate」が重要なのか

Laravelが開発者にとって使いやすく、拡張しやすいフレームワークになっている理由のひとつは、「必要な機能を必要なだけ使える」コンポーネント構成にあります。
認証やルーティング、テンプレートエンジンなど、Webアプリ開発でよく使われる機能が一連のコンポーネントに分割されているのです!
結果的に、アプリケーション全体がシンプルに保たれ、パーツの交換・アップグレードもしやすくなる。というメリットがあるため重要になっています。

Illuminateコンポーネント紹介

ここからは、Laravelの主要コンポーネントをざっと見ていきます!
実際にはもっと細かいパッケージもありますが、基本的な理解の助けになれば嬉しいです。

1. 認証やユーザー管理の要

・Illuminate\Auth
ログインやログアウト、ユーザー情報の保持など、認証にまつわる機能を集約。
Laravelで会員サイトを作るなら、まずはここをチェック!

2. イベントやリアルタイム通信

・Illuminate\Broadcasting
Pusher や WebSocket を使ってリアルタイムにデータをやり取りするときに頼れるやつ。チャット機能やライブ更新を実装したいときに便利です。

【補足】「PusherとWebSocket」
Pusher:リアルタイム通信を提供するサービス
WebSocket:サーバ・クライアント間で双方向の非同期通信する技術

・Illuminate\Events
PusherやWebSocketを使ってリアルタイムにデータをやり取りするときに頼れるやつ。チャット機能やライブ更新を実装したいときに便利です。

3. キャッシュ・設定・セッション管理

・Illuminate\Cache
使い慣れたRedisやMemcachedの他にも、ファイルベースのキャッシュなど選択肢が豊富!

【補足】「RedisとMemcached」
Redisとは:メモリ上で動作するオープンソースのインメモリデータベース
Memcachedとは:分散型キャッシュシステムを構築することができるソフトウェア

・Illuminate\Config
configフォルダにある設定ファイルを読み込み、一括管理!どこで値がセットされてたっけ?”って探す時間を節約できます。

・Illuminate\Broadcasting
ログイン状態をキープしたり、一時的にデータを持っておいたりするのに必須。ファイルやRedisなど、保存場所も選べます。

4. コンソールと依存注入

・Illuminate\Config
Artisan コマンドを裏で支えるコンポーネント。独自コマンドを作るのも簡単なので、どんどん自動化が捗ります。

・Illuminate\Container
LaravelのIoCコンテナの核となる部分。クラスの依存関係を解決してくれて、コードが美しくまとまります。

5. HTTPレイヤ&ルーティング

・Illuminate\Http
リクエストやレスポンス処理、ミドルウェアなど、Web アプリ開発には欠かせない機能を提供しています。

・Illuminate\Routing
URL パスをどのコントローラで処理するかを決めるのがこのコンポーネント。ルートの書き方がシンプルなのが嬉しいですね!

6. データベースまわり

・Illuminate\Database
MySQLやPostgreSQLなどへの接続、クエリビルダ、そして Eloquent ORM まで含んだイカしてるパッケージ。

・Illuminate\Redis
Redis をシームレスに操作できるので、キャッシュやキュー、リアルタイム処理のサポートもバッチリ。

7. セキュリティや暗号化

・Illuminate\Encryption
クッキーなどの機密情報をしっかり暗号化&復号化してくれます。

・Illuminate\Cookie
署名付きクッキーを扱う場合にお世話になるコンポーネント。セキュリティの底上げに貢献!

・Illuminate\Hashing
パスワードのハッシュ化や比較を行う基盤。Bcrypt や Argon2i/Argon2id をサクッと使えます。

【補足】「BcryptとArgon2i/Argon2id」
Bcrypt:Blowfish暗号を基盤としたパスワードハッシュ化関数
Argon2i/Argon2id:パスワードハッシュ関数であるArgon2のバリエーション
→Argon2とは:パスワードなどの秘密情報を一方向に変換する暗号化を行うパスワードハッシュ関数

8. ビューやテンプレート

・Illuminate\View
Laravel の魔法、Blade テンプレートがここに詰まっています。ビューをキャッシュしたりコンパイルしたり、地味ながら頼もしい裏方。

9. ログ・通知・メール

・Illuminate\Log
Monolog をベースにしたログ管理。ファイルはもちろん、Slack や外部サービスにも連携できて便利!

【補足】「Monolog」
Monolog:メール、Slack、データベース、クラウドサービスなどにログの出力先や形式を自由度高く設定できる

・Illuminate\Notifications
いろんなチャネル(メール、Slack、データベースなど)へ一斉に通知を送れるので、メッセージの一元管理もらくらくです。

・Illuminate\Mail
SMTP、Mailgun、Amazon SES など多数のメールドライバと連携。テンプレートを自作できるので、HTML メール送信も思いのままに!

10. その他便利機能

・Illuminate\Support
文字列や配列の操作など、ちょっと嬉しいユーティリティがギッシリ。Collection もココに入っています。

・Illuminate\Pagination
大量データをページング表示したいときに簡単に導入できる優れもの。ページリンクまで自動生成!

・Illuminate\Validation
入力データのバリデーションを一手に引き受け。エラー表示もスムーズで、フォーム処理が格段に楽になります。

・Illuminate\Lang / Illuminate\Translation
多言語対応の土台となるコンポーネント。翻訳ファイルを用意すれば、言語切り替えもお手のものです。

まとめ

Laravelを初めて触った時は、ピュアPHPと違ってあたふたした思い出があります。
当時は「何がどうなってるの!?」と手当たり次第に機能を勉強しては実装して・・・。と全体像やLaravelの基本的な構造も学習せずにいたら、虫に食べられた葉っぱのように穴だらけの知識になっていました。

今回はそんな経験から初心者の方に構造や、どんな機能なのかを簡単に知ってもらえればと思い本記事を作成しました。

ご参考になりましたら嬉しいです!それではまた。

参考サイト

お問い合わせはこちら

Oookeyは新規企画・事業の立ち上げや
プロダクトのシステム開発、
UI/UX制作など、一気通貫で
プロジェクトにコミットし伴走します。

お問い合わせフォーム

New Blog List

新着ブログ一覧

【初心者向け】Laravelの「Illuminate」って何だろう?

ウェブ制作

プログラミング

【初心者向け】
Laravelの「Illuminate」って何だろう?

お刺身@プログラマー

お刺身@プログラマー

Macのローカル環境でCronの設定をする方法!

ウェブ制作

プログラミング

Macのローカル環境で
Cronの設定をする方法!

完凸ウサギフクロウ@プログラマー

完凸ウサギフクロウ@プログラマー

おすすめ明朝体&ゴシック体フォント12選

ウェブ制作

ウェブデザイン

おすすめ明朝体&ゴシック体
フォント12選

たまごしゃん@デザイナー

たまごしゃん@デザイナー

LaravelとGoogleチャートを組み合わせて、円グラフを表示してみよう!

ウェブ制作

プログラミング

LaravelとGoogleチャート
組み合わせて、円グラフを
表示してみよう!

カフェラテ@プログラマー

カフェラテ@プログラマー

Laravel11でIpアドレス制限をしよう

ウェブ制作

プログラミング

Laravel11でIpアドレス制限を
しよう

お刺身@プログラマー

お刺身@プログラマー

バナー作成におすすめの参考サイト

ウェブ制作

ウェブデザイン

バナー作成におすすめの
参考サイト4選

くるまちゃん@デザイナー

くるまちゃん@デザイナー

Oookey Blog 最初のごあいさつ

その他

ウェブ制作

Oookey Blog 最初の
ごあいさつ

お刺身@プログラマー

お刺身@プログラマー