Laravel 9.x インストール

Laravelとの出会い

Laravelは、表現力豊かでエレガントな構文を備えたWebアプリケーションフレームワークです。Webフレームワークは、アプリケーションを作成するための構造と開始点を提供します。これにより、細部に気を配りながら、すばらしいものの作成に集中できます。

Laravelは、すばらしい開発者エクスペリエンスの提供に努めています。同時に完全な依存注入、表現力豊かなデータベース抽象化レイヤー、キューとジョブのスケジュール、ユニットと統合テストなど、強力な機能もLaravelは提供しています。

PHP Webフレームワークをはじめて使用する場合も、長年の経験を持っている場合でも、Laravelは一緒に成長できるフレームワークです。私たちは皆さんがWeb開発者として最初の一歩を踏み出すのを支援したり、専門知識を次のレベルに引き上げる後押しをしたりしています。あなたが何を作り上げるのか楽しみにしています。

Note: Laravelは初めてですか?Laravel Bootcampでは、Laravelのフレームワークを実際に体験しながら、Laravelアプリケーションを構築できます。

なぜLaravelなのか?

Webアプリケーションを構築するときに利用できるさまざまなツールとフレームワークがあります。そうした状況でも、Laravelは最新のフルスタックWebアプリケーションを構築するために最良の選択であると私たちは信じています。

前進するフレームワーク

私たちはLaravelを「進歩的な」フレームワークと呼んでいます。つまり、Laravelはあなたと一緒に成長するという意味です。もしあなたが、Web開発の最初の一歩を踏み出したばかりの方であれば、Laravelの膨大なドキュメント、ガイド、およびビデオチュートリアルのライブラリが、圧倒されず骨子を学ぶのに役立つでしょう。

開発の上級者でしたら、Laravelの依存注入単体テストキューリアルタイムイベントなど堅牢なツールが役立つでしょう。Laravelは、プロフェッショナルなWebアプリケーションを構築するため調整してあり、エンタープライズにおける作業負荷を処理する準備ができています。

スケーラブルなフレームワーク

Laravelは素晴らしくスケーラブルです。PHPのスケーリングに適した基本の性質と、Redisなど高速な分散キャッシュシステムに対するLaravelの組み込み済みサポートにより、Laravelを使用した水平スケーリングは簡単です。実際、Laravelアプリケーションは、月あたり数億のリクエストを処理するよう簡単に拡張できます。

極端なスケーリングが必要ですか? Laravel Vaporのようなプラットフォームを使用すると、AWSの最新のサーバレステクノロジーでほぼ無制限の規模でLaravelアプリケーションを実行できます。

コミュニティによるフレームワーク

LaravelはPHPエコシステムで最高のパッケージを組み合わせ、もっとも堅牢で開発者に優しいフレームワークとして使用できるように提供しています。さらに、世界中の何千人もの才能ある開発者がフレームワークに貢献しています。多分あなたもLaravelの貢献者になるかもしれませんね。

最初のLaravelプロジェクト

最初のLaravelプロジェクトを作成する前に、ローカルマシンにPHPとComposerをインストールしていることを確認してください。macOSで開発している場合、PHPとComposerはHomebrewを使い、インストールできます。さらに、NodeとNPMのインストールもおすすめします。

PHPとComposerをインストールしたら、Composerのcreate-projectコマンドで、Laravelの新規プロジェクトを作成できます。

composer create-project laravel/laravel example-app

または、Composer経由でLaravelインストーラをグローバルインストールすることで、新しいLaravelプロジェクトを作成することもできます。

composer global require laravel/installer

laravel new example-app

プロジェクト作成後、LaravelのArtisan serve CLIコマンドを使用して、Laravelローカル開発サーバを起動します。

cd example-app

php artisan serve

Artisan開発サーバを起動すると、Webブラウザでhttp://localhost:8000からアプリケーションへアクセスできるようになります。次に、Laravelエコシステムへの次のステップを開始する準備が整いました。もちろん、データベースの設定も必要になります。

Note: Laravelアプリケーションを開発する際に、有利なスタートダッシュを切りたければ、スターターキットの1つを使用することを検討してください。Laravelのスターターキットは、新しいLaravelアプリケーションのために、バックエンドとフロントエンド側の認証のスカフォールドを提供します。

LaravelとDocker

皆さんの好みのオペレーティングシステムが何であれ、できるだけ簡単にLaravelを始められるようにしたいと考えています。そのため、ローカルマシンでLaravelプロジェクトを開発・実行するための様々なオプションが用意されています。これらのオプションは後ほど検討していただけますが、LaravelではSailという、Dockerを使用してLaravelプロジェクトを実行する組み込みソリューションを提供しています。

Dockerは、ローカルマシンにインストールしているソフトウェアや構成に干渉しない、小型で軽量の「コンテナ」でアプリケーションとサービスを実行するためのツールです。これはつまり、パーソナルマシン上のWebサーバやデータベースなどの複雑な開発ツールの構成や準備について心配する必要はないことを意味します。開発を開始するには、Docker Desktopをインストールするだけです。

Laravel Sailは、LaravelのデフォルトのDocker構成と、操作するための軽量のコマンドラインインターフェイスです。 Sailは、Dockerの経験がなくても、PHP、MySQL、Redisを使用してLaravelアプリケーションを構築するために良い出発点を提供しています。

Note: すでにDockerのエキスパートですか?ご心配なく!Laravelが提供するdocker-compose.ymlファイルを使用して、Sailに関するすべてをカスタマイズできます。

macOSで始める

Macで開発していて、Docker Desktopがすでにインストールされているならば、簡単なターミナルコマンドを使用して新しいLaravelプロジェクトを作成できます。たとえば、「example-app」という名前のディレクトリに新しいLaravelアプリケーションを作成するには、ターミナルで以下のコマンドを実行します。

curl -s "https://laravel.build/example-app" | bash

もちろん、このURLの"example-app"は好きなように変更できます。ただし、アプリケーション名は英数字とハイフン、アンダーバーだけで構成してください。Laravelアプリケーションのディレクトリは、コマンドを実行したディレクトリ内に作成されます。

Sailのインストールは、Sailのアプリケーションコンテナをローカルマシン上に構築するため、数分かかる場合があります。

プロジェクトを作成したら、アプリケーションディレクトリに移動してLaravel Sailを起動してください。Laravel Sailは、LaravelのデフォルトのDocker構成を操作するためのシンプルなコマンドラインインターフェイスを提供しています。

cd example-app

./vendor/bin/sail up

アプリケーションのDockerコンテナを開始したら、Webブラウザでアプリケーションのhttp://localhostにアクセスできます。

Note: Laravel Sailの詳細は、完全なドキュメントで確認してください。

Windowsで始める

Windowsマシンに新しいLaravelアプリケーションを作成する前に、必ずDocker Desktopをインストールしてください。次に、Windows Subsystem for Linux 2(WSL2)がインストールされ、有効になっていることを確認する必要があります。 WSLを使用すると、Linuxバイナリ実行可能ファイルをWindows 10でネイティブに実行できます。WSL2をインストールして有効にする方法については、Microsoftの開発者環境ドキュメントを参照してください。

Note: WSL2をインストールして有効にした後、DockerデスクトップがWSL2バックエンドを使用するように構成されていることを確認する必要があります。

これで、最初のLaravelプロジェクトを作成する準備が整いました。Windowsターミナルを起動し、WSL2 Linuxオペレーティングシステムの新しいターミナルセッションを開始します。次に、簡単なターミナルコマンドを使用して新しいLaravelプロジェクトを作成してみましょう。たとえば、"example-app"という名前のディレクトリに新しいLaravelアプリケーションを作成するには、ターミナルで以下のコマンドを実行します。

curl -s https://laravel.build/example-app | bash

もちろん、このURLの"example-app"は好きなように変更できます。ただし、アプリケーション名は英数字とハイフン、アンダーバーだけで構成してください。Laravelアプリケーションのディレクトリは、コマンドを実行したディレクトリ内に作成されます。

Sailのインストールは、Sailのアプリケーションコンテナをローカルマシン上に構築するため、数分かかる場合があります。

プロジェクトを作成したら、アプリケーションディレクトリに移動してLaravel Sailを起動してください。Laravel Sailは、LaravelのデフォルトのDocker構成を操作するためのシンプルなコマンドラインインターフェイスを提供しています。

cd example-app

./vendor/bin/sail up

アプリケーションのDockerコンテナを開始したら、Webブラウザでアプリケーションのhttp://localhostにアクセスできます。

Note: Laravel Sailの詳細は、完全なドキュメントで確認してください。

WSL2内での開発

もちろん、WSL2インストール内で作成されたLaravelアプリケーションファイルを変更する必要があります。これを実現するには、MicrosoftのVisual Studio Codeエディターとリモート開発用のファーストパーティ拡張機能を使用することをお勧めします。

これらのツールをインストールしたら、Windowsターミナルを使用してアプリケーションのルートディレクトリから code .コマンドを実行することで、任意のLaravelプロジェクトを開けます。

Linuxで始める

Linuxで開発しており、Docker Composeがインストール済みの場合は、簡単なターミナルコマンドを使用して新しいLaravelプロジェクトを作成できます。たとえば、"example-app"という名前のディレクトリに新しいLaravelアプリケーションを作成するには、ターミナルで次のコマンドを実行します。

curl -s https://laravel.build/example-app | bash

もちろん、このURLの"example-app"は好きなように変更できます。ただし、アプリケーション名は英数字とハイフン、アンダーバーだけで構成してください。Laravelアプリケーションのディレクトリは、コマンドを実行したディレクトリ内に作成されます。

Sailのインストールは、Sailのアプリケーションコンテナをローカルマシン上に構築するため、数分かかる場合があります。

プロジェクトを作成したら、アプリケーションディレクトリに移動してLaravel Sailを起動してください。Laravel Sailは、LaravelのデフォルトのDocker構成を操作するためのシンプルなコマンドラインインターフェイスを提供しています。

cd example-app

./vendor/bin/sail up

アプリケーションのDockerコンテナを開始したら、Webブラウザでアプリケーションのhttp://localhostにアクセスできます。

Note: Laravel Sailの詳細は、完全なドキュメントで確認してください。

Sailサービスの選択

Sailで新しいLaravelアプリケーションを作成する際に、withというクエリ文字列変数を使って、新しいアプリケーションのdocker-compose.ymlファイルで設定するサービスを選択できます。利用可能なサービスは、mysqlpgsqlmariadbredismemcachedmeilisearchminioseleniummailpitです。

curl -s "https://laravel.build/example-app?with=mysql,redis" | bash

設定したいサービスを指定しない場合は、mysqlredismeilisearchmailpitseleniumのデフォルトのスタックが設定されます。

URLへdevcontainerパラメータを追加し、デフォルトのDevcontainerをインストールするよう、Sailに指示できます。

curl -s "https://laravel.build/example-app?with=mysql,redis&devcontainer" | bash

初期設定

Laravelフレームワークのすべての設定ファイルは、configディレクトリに格納されています。各オプションにコメントが記述していますので、気兼ねなくファイルに目を通し、利用可能なオプションに馴染んでください。

Laravelでは、初期の追加設定はほとんど必要ありません。すぐに開発を始められます。しかし、config/app.phpファイルとそのコメントを確認することをお勧めします。このファイルには、timezonelocale など、アプリケーションに応じて更新しておきたいオプションが含まれています。

環境ベースの設置

Laravelの設定オプションの値の多くは、アプリケーションがローカルマシンで動作しているか、実働Webサーバで動作しているかにより異なるため、多くの重要な設定値はアプリケーションルートに存在する、.envファイルを用いて定義します。

.envファイルは、アプリケーションのソース管理へコミットしてはいけません。なぜなら、アプリケーションを使用する開発者やサーバごとに、異なる環境設定が必要になる可能性があるからです。さらに、侵入者がソースコントロールリポジトリへアクセスした場合、機密情報が漏洩してしまうため、セキュリティリスクにもなります。

Note: .envファイルと環境ベースの設定の詳細は、完全な設定ドキュメントをチェックしてください。

データベースとマイグレーション

Laravelアプリケーションを作成したら、データをデータベースへ保存したいと思うことでしょう。アプリケーションの.env設定ファイルはデフォルトで、MySQLデータベースを操作するように指定し、127.0.0.1のデータベースへアクセスするようになっています。macOSで開発しており、MySQL、Postgres、Redisをローカルにインストールする必要がある場合、DBnginを利用すると便利です。

ローカルマシンにMySQLやPostgresをインストールしたくない場合は、いつでもSQLiteデータベースを使用できます。SQLiteは小さく、高速で、自己完結型のデータベースエンジンです。使用し始めるには、空のSQLiteファイルを作成することにより、SQLiteデータベースを作成します。通常、このファイルはLaravelアプリケーションのdatabaseディレクトリの中に設置します。

touch database/database.sqlite

次に、Laravelがsqliteデータベースドライバを使用するよう、.env設定ファイルを変更します。他のデータベース設定オプションは削除してかまいません。

DB_CONNECTION=sqlite # [tl! 追加]
DB_CONNECTION=mysql # [tl! 削除]
DB_HOST=127.0.0.1 # [tl! 削除]
DB_PORT=3306 # [tl! 削除]
DB_DATABASE=laravel # [tl! 削除]
DB_USERNAME=root # [tl! 削除]
DB_PASSWORD= # [tl! 削除]

SQLiteデータベースの設定が終わったら、データベースマイグレーションを実行し、アプリケーションのデータベーステーブルを作成できます。

php artisan migrate

次のステップ

Laravelプロジェクトを設定し終えて、次に何を学ぶべきか迷っているかもしれません。まず、以下のドキュメントを読み、Laravelの仕組みを理解することを強く推奨いたします。

Laravelをどのように使用するかにより、旅の次の行き先も決まります。Laravelを使用するにはさまざまな方法があります。以下では、フレームワークの2つの主要なユースケースについて説明します。

Note: Laravelは初めてですか?Laravel Bootcampでは、Laravelのフレームワークを実際に体験しながら、Laravelアプリケーションを構築できます。

Laravelフルスタックフレームワーク

Laravelは、フルスタックフレームワークとして機能させることができます。「フルスタック」フレームワークとは、Laravelを使用して、アプリケーションへのリクエストをルーティングし、BladeテンプレートInertiaなどのシングルページアプリケーションハイブリッド技術でフロントエンドをレンダすることを意味します。これは、Laravelフレームワークの最も一般的な使用方法であり、私たちの意見では、Laravelを使用する最も生産的な方法です。

もし、Laravelをどうしようしようかと考えているのであれば、フロントエンド開発ルーティングビューEloquent ORMについてのドキュメントをチェックすると良いかも知れません。さらに、LivewireInertiaといったコミュニティパッケージについても学ぶことに興味があるかもしれません。これらのパッケージにより、Laravelをフルスタックフレームワークとして使用しながら、シングルページのJavaScriptアプリケーションが提供するUIの、利点をたくさん享受できます。

Laravelをフルスタックフレームワークとして使用している場合、Viteを使用してアプリケーションのCSSとJavaScriptをコンパイルする方法を学ぶのも強く推奨します。

Note: アプリケーションの構築をすぐに始めたい場合は、公式のアプリケーションスターターキットの1つをチェックしてください。

Laravel APIバックエンド

Laravelは、JavaScriptシングルページアプリケーションまたはモバイルアプリケーションへのAPIバックエンドとしても機能させることもあります。たとえば、Next.jsアプリケーションのAPIバックエンドとしてLaravelを使用できます。こうした使い方では、Laravelでアプリケーションに認証とデータの保存/取得を提供すると同時に、キュー、メール、通知などのLaravelの強力なサービスを利用できます。

この方法でLaravelの使用を計画している場合は、ルーティングLaravel SanctumEloquent ORMに関するドキュメントを確認することをお勧めします。

Note: LaravelのバックエンドとNext.jsのフロントエンドのスカフォールドから始める必要がありますか?Laravel Breezeは、APIスタックNext.jsフロントエンド実装を提供しているため、すぐに開始できます。

ドキュメント章別ページ

ヘッダー項目移動

注目:アイコン:ページ内リンク設置(リンクがないヘッダーへの移動では、リンクがある以前のヘッダーのハッシュをURLへ付加します。

移動

クリックで即時移動します。

設定

適用ボタンクリック後に、全項目まとめて適用されます。

カラーテーマ
和文指定 Pagination
和文指定 Scaffold
Largeスクリーン表示幅
インデント
本文フォント
コードフォント
フォント適用確認

フォントの指定フィールドから、フォーカスが外れると、当ブロックの内容に反映されます。EnglishのDisplayもPreviewしてください。

フォント設定時、表示に不具合が出た場合、当サイトのクッキーを削除してください。

バックスラッシュを含むインライン\Code\Blockの例です。

以下はコードブロックの例です。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * ユーザに関連する電話レコードを取得
     */
    public function phone()
    {
        return $this->hasOne('App\Phone');
    }
}

設定を保存する前に、表示が乱れないか必ず確認してください。CSSによるフォントファミリー指定の知識がない場合は、フォントを変更しないほうが良いでしょう。

キーボード・ショートカット

オープン操作

PDC

ページ(章)移動の左オフキャンバスオープン

HA

ヘッダー移動モーダルオープン

MS

移動/設定の右オフキャンバスオープン

ヘッダー移動

T

最初のヘッダーへ移動

E

最後のヘッダーへ移動

NJ

次ヘッダー(H2〜H4)へ移動

BK

前ヘッダー(H2〜H4)へ移動

その他

?

このヘルプページ表示
閉じる