Laravelとの出会い
Laravelは、表現力豊かでエレガントな構文を備えたWebアプリケーションフレームワークです。Webフレームワークは、アプリケーションを作成するための構造と開始点を提供します。これにより、細部に気を配りながら、すばらしいものの作成に集中できます。
Laravelは、すばらしい開発者エクスペリエンスの提供に努めています。同時に完全な依存注入、表現力豊かなデータベース抽象化レイヤー、キューとジョブのスケジュール、ユニットと統合テストなど、強力な機能もLaravelは提供しています。
PHPやWebフレームワークをはじめて使用する場合でも、長年の経験がある場合でも、Laravelは一緒に成長できるフレームワークです。私たちは皆さんがWeb開発者として最初の一歩を踏み出すのを支援したり、専門知識を次のレベルに引き上げる後押しをしたりしています。あなたが何を作り上げるのか楽しみにしています。
なぜ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をできるだけ簡単に使い始められるようにしたいと思っています。自分のコンピューター上でLaravelプロジェクトを開発して実行するためのさまざまな選択肢があります。後でこうしたオプションを検討することもできますが、LaravelはDockerを利用する、Laravelプロジェクトを実行できる組み込みソルーションであるSailを提供しています。
Dockerは、ローカルコンピューターにインストールされているソフトウェアや構成に干渉しない、小型で軽量の「コンテナー」でアプリケーションとサービスを実行するためのツールです。これはつまり、パーソナルコンピュータ上のWebサーバやデータベースなどの複雑な開発ツールの構成や準備について心配する必要はないことを意味します。開発を開始するには、Docker Desktopをインストールするだけです。
Laravel Sailは、LaravelのデフォルトのDocker構成と、操作するための軽量のコマンドラインインターフェイスです。 Sailは、Dockerの経験がなくても、PHP、MySQL、Redisを使用してLaravelアプリケーションを構築するために良い出発点を提供しています。
Tip!! すでに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アプリケーションのディレクトリは、コマンドを実行したディレクトリ内に作成されます。
プロジェクトを作成したら、アプリケーションディレクトリに移動してLaravel Sailを起動してください。Laravel Sailは、LaravelのデフォルトのDocker構成を操作するためのシンプルなコマンドラインインターフェイスを提供しています。
cd example-app
./vendor/bin/sail up
Sailのup
コマンドをはじめて実行すると、Sailのアプリケーションコンテナがマシン上に構築されます。これには数分かかるでしょう。心配ありません。これ以降のSailの開始・起動は、はるかに高速になります。
アプリケーションのDockerコンテナーを開始したら、Webブラウザでアプリケーションのhttp://localhostにアクセスできます。
Tip!! Laravel Sailの詳細は、完全なドキュメントで確認してください。
Windowsで始める
Windowsマシンに新しいLaravelアプリケーションを作成する前に、必ずDocker Desktopをインストールしてください。次に、Windows Subsystem for Linux 2(WSL2)がインストールされ、有効になっていることを確認する必要があります。 WSLを使用すると、Linuxバイナリ実行可能ファイルをWindows 10でネイティブに実行できます。WSL2をインストールして有効にする方法については、Microsoftの開発者環境ドキュメントを参照してください。
Tip!! WSL2をインストールして有効にした後、DockerデスクトップがWSL2バックエンドを使用するように構成されていることを確認する必要があります。
これで、最初のLaravelプロジェクトを作成する準備が整いました。Windowsターミナルを起動し、WSL2 Linuxオペレーティングシステムの新しいターミナルセッションを開始します。次に、簡単なターミナルコマンドを使用して新しいLaravelプロジェクトを作成してみましょう。たとえば、"example-app"という名前のディレクトリに新しいLaravelアプリケーションを作成するには、ターミナルで以下のコマンドを実行します。
curl -s https://laravel.build/example-app | bash
もちろん、このURLの「example-app」は好きなように変更できます。Laravelアプリケーションのディレクトリは、コマンドを実行したディレクトリ内に作成されます。
プロジェクトを作成したら、アプリケーションディレクトリに移動してLaravel Sailを起動できます。Laravel Sailは、LaravelのデフォルトのDocker構成と操作するためのシンプルなコマンドラインインターフェイスを提供します。
cd example-app
./vendor/bin/sail up
Sailのup
コマンドをはじめて実行すると、Sailのアプリケーションコンテナがマシン上に構築されます。これには数分かかるでしょう。心配ありません。これ以降のSailの開始・起動は、はるかに高速になります。
アプリケーションのDockerコンテナーを開始したら、Webブラウザでアプリケーションのhttp://localhostへアクセスできます。
Tip!! 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アプリケーションのディレクトリは、コマンドを実行したディレクトリ内に作成されます。
プロジェクトを作成したら、アプリケーションディレクトリへ移動してLaravel Sailを起動できます。Laravel Sailは、LaravelのデフォルトのDocker構成と操作のためのシンプルなコマンドラインインターフェイスを提供しています。
cd example-app
./vendor/bin/sail up
Sailのup
コマンドをはじめて実行すると、Sailのアプリケーションコンテナがマシン上に構築されます。これには数分かかるでしょう。心配ありません。これ以降のSailの開始・起動は、はるかに高速になります。
アプリケーションのDockerコンテナーを開始したら、Webブラウザでアプリケーションのhttp://localhostにアクセスできます。
Tip!! Laravel Sailの詳細は、完全なドキュメントで確認してください。
Sailサービスの選択
Sailで新しいLaravelアプリケーションを作成する際に、with
というクエリ文字列変数を使って、新しいアプリケーションのdocker-compose.yml
ファイルで設定するサービスを選択することができます。利用可能なサービスは、mysql
、pgsql
、mariadb
、redis
、memcached
、meilisearch
、minio
、selenium
、mailhog
です。
curl -s "https://laravel.build/example-app?with=mysql,redis" | bash
設定したいサービスを指定しない場合は、mysql
、redis
、meilisearch
、mailhog
、selenium
のデフォルトのスタックが設定されます。
Composerでのインストール
コンピューターにすでにPHPとComposerがインストールされていれば、Composerを直接使用して新しいLaravelプロジェクトを作成できます。アプリケーションを作成したら、Artisan
CLIのserve
コマンドを使用して、Laravelのローカル開発サーバを起動できます。
composer create-project laravel/laravel:^8.0 example-app
cd example-app
php artisan serve
Laravelインストーラ
または、LaravelインストーラをグローバルなComposerのパッケージとしてインストールすることもできます。
composer global require laravel/installer
laravel new example-app
cd example-app
php artisan serve
Composerのシステム全体のvendor/binディレクトリを$PATH
に配置して、システムでlaravel
実行可能ファイルが見つかるようにしてください。このディレクトリは、オペレーティングシステムに基づいてさまざまな場所に存在します。ただし、一般的には以下の場所にあります。
- macOS:
$HOME/.composer/vendor/bin
- Windows:
%USERPROFILE%\AppData\Roaming\Composer\vendor\bin
- GNU/Linuxディストリビューション:
$HOME/.config/composer/vendor/bin
もしくは$HOME/.composer/vendor/bin
便利なように、Laravelインストーラはあなたの新しいプロジェクトのためにGitリポジトリを作成することもできます。Gitリポジトリを作成することを指示するには、新しいプロジェクトを作成するときに--git
フラグを渡します。
laravel new example-app --git
このコマンドはプロジェクトの新しいGitリポジトリを初期化し、基本的なLaravelのスケルトンを自動的にコミットします。git
フラグは正しくインストールされ、設定したGitを持っていると仮定しています。--branch
フラグを使用して最初の分岐名を設定することもできます。
laravel new example-app --git --branch="main"
--git
フラグを使用する代わりに、--github
フラグを使用してGitリポジトリを作成し、GitHubで対応するプライベートリポジトリを作成することもできます。
laravel new example-app --github
作成されたリポジトリはhttps://github.com/<your-account>/example-app
で入手できます。github
フラグは、GitHub
CLIを正しくインストールし、GitHubで認証されていると仮定しています。さらに、git
がインストールされ、正しく設定されている必要があります。必要に応じて、GitHub
CLIがサポートしている追加のフラグを渡せます。
laravel new example-app --github="--public"
--organization
フラグを使用して、特定のGitHubオーガニゼーションの下へリポジトリを作成できます。
laravel new example-app --github="--public" --organization="laravel"
初期設定
Laravelフレームワークのすべての設定ファイルは、config
ディレクトリに保存されます。各オプションはコメントで説明してますので、ファイルを読み、使用可能なオプションを理解してください。
Laravelは最初から、追加設定をほぼ必要としません。あなたは自由に開発を始めることができます!しかし、config/app.php
ファイルとコメントを確認されることを推奨します。timezone
やlocale
などのオプションが含まれており、アプリケーションに合わせて変更したいはずです。
環境ベースの設定
Laravelの設定オプション値の多くは、アプリケーションがローカルコンピューターで実行されているか、本番Webサーバで実行されているかにより別の値にする場合があるため、多くの重要な設定値をアプリケーションのルートにある.env
ファイルを使用して定義しています。
アプリケーションを使用する開発者/サーバごとに異なる環境設定が必要になる可能性があるため、.env
ファイルをアプリケーションのソース管理へコミットしないでください。さらに、機密性の高い資格情報が公開されるため、侵入者がソース管理リポジトリにアクセスした場合のセキュリティリスクになります。
Tip!!
.env
ファイルと環境ベースの設定の詳細については、完全な設定ドキュメントで確認してください。
ディレクトリ設定
Laravelは常に、Webサーバで設定する「Webディレクトリ」のルートから提供するべきです。WebディレクトリのサブディレクトリからLaravelアプリケーションを提供しないでください。そうしてしまうと、アプリケーション内に存在する機密ファイルが漏洩する可能性があります。
次のステップ
Laravelプロジェクトを設定し終えて、次に何を学ぶべきか迷っているかもしれません。まず、以下のドキュメントを読み、Laravelの仕組みを理解することを強く推奨いたします。
Laravelをどのように使用するかにより、旅の次の行き先も決まります。Laravelを使用するにはさまざまな方法があります。以下では、フレームワークの2つの主要なユースケースについて説明します。
Laravelフルスタックフレームワーク
Laravelはフルスタックフレームワークとして機能します。「フルスタック」フレームワークとは、Laravelを使用してリクエストをアプリケーションにルーティングし、Bladeテンプレートを介して、もしくはInertia.jsのようなシングルページアプリケーションハイブリッド技術を使用してフロントエンドをレンダーすることを意味します。これは、Laravelフレームワークが利用される、最も一般的な方法です。
Laravelをこの方法で使用しようと計画している場合は、ルーティング、ビュー 、またはEloquent ORMに関するドキュメントを確認するのが良いでしょう。さらに、LivewireやInertia.jsなどのコミュニティパッケージについて学ぶこともできます。これらのパッケージを使用すると、Laravelをフルスタックフレームワークとして使用しながら、単一ページのJavaScriptアプリケーションによって提供されるUIの利点の多くを享受できます。
Laravelをフルスタックフレームワークとして使用する場合は、Laravel Mixを使用してアプリケーションのCSSとJavaScriptをコンパイルする方法を学ぶことも強くおすすめします。
Tip!! アプリケーションの構築をすぐに始めたい場合は、公式のアプリケーションスターターキットの1つをチェックしてください。
Laravel APIバックエンド
Laravelは、JavaScriptシングルページアプリケーションまたはモバイルアプリケーションへのAPIバックエンドとしても機能させることもあります。たとえば、Next.jsアプリケーションのAPIバックエンドとしてLaravelを使用できます。こうした使い方では、Laravelでアプリケーションに認証とデータの保存/取得を提供すると同時に、キュー、メール、通知などのLaravelの強力なサービスを利用できます。
この方法でLaravelの使用を計画している場合は、ルーティング、Laravel Sanctum、Eloquent ORMに関するドキュメントを確認することをお勧めします。
Tip!! LaravelのバックエンドとNext.jsのフロントエンドのスカフォールドから始める必要がありますか?Laravel Breezeは、APIスタックとNext.jsフロントエンド実装を提供しているため、すぐに開始できます。