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
ファイルで設定するサービスを選択できます。利用可能なサービスは、mysql
、pgsql
、mariadb
、redis
、memcached
、meilisearch
、minio
、selenium
、mailpit
です。
curl -s "https://laravel.build/example-app?with=mysql,redis" | bash
設定したいサービスを指定しない場合は、mysql
、redis
、meilisearch
、mailpit
、selenium
のデフォルトのスタックが設定されます。
URLへdevcontainer
パラメータを追加し、デフォルトのDevcontainerをインストールするよう、Sailに指示できます。
curl -s "https://laravel.build/example-app?with=mysql,redis&devcontainer" | bash
初期設定
Laravelフレームワークのすべての設定ファイルは、config
ディレクトリに格納されています。各オプションにコメントが記述していますので、気兼ねなくファイルに目を通し、利用可能なオプションに馴染んでください。
Laravelでは、初期の追加設定はほとんど必要ありません。すぐに開発を始められます。しかし、config/app.php
ファイルとそのコメントを確認することをお勧めします。このファイルには、timezone
やlocale
など、アプリケーションに応じて更新しておきたいオプションが含まれています。
環境ベースの設置
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についてのドキュメントをチェックすると良いかも知れません。さらに、LivewireやInertiaといったコミュニティパッケージについても学ぶことに興味があるかもしれません。これらのパッケージにより、Laravelをフルスタックフレームワークとして使用しながら、シングルページのJavaScriptアプリケーションが提供するUIの、利点をたくさん享受できます。
Laravelをフルスタックフレームワークとして使用している場合、Viteを使用してアプリケーションのCSSとJavaScriptをコンパイルする方法を学ぶのも強く推奨します。
Note: アプリケーションの構築をすぐに始めたい場合は、公式のアプリケーションスターターキットの1つをチェックしてください。
Laravel APIバックエンド
Laravelは、JavaScriptシングルページアプリケーションまたはモバイルアプリケーションへのAPIバックエンドとしても機能させることもあります。たとえば、Next.jsアプリケーションのAPIバックエンドとしてLaravelを使用できます。こうした使い方では、Laravelでアプリケーションに認証とデータの保存/取得を提供すると同時に、キュー、メール、通知などのLaravelの強力なサービスを利用できます。
この方法でLaravelの使用を計画している場合は、ルーティング、Laravel Sanctum、Eloquent ORMに関するドキュメントを確認することをお勧めします。
Note: LaravelのバックエンドとNext.jsのフロントエンドのスカフォールドから始める必要がありますか?Laravel Breezeは、APIスタックとNext.jsフロントエンド実装を提供しているため、すぐに開始できます。