ビルドとシップ
生産性のために
作られたツール
でソフトウェアを

Laravelはウェブ職人のための完全なエコシステムを提供します。私たちのオープンソースPHPフレームワーク、製品、パッケージ、スターターキットは、ウェブアプリケーションの構築、デプロイ、監視に必要なすべてを提供します。

動画を見る 2分

世界中の何千もの企業から信頼されています

エコシステム

堅牢なエコシステムを持つPHPフレームワーク

Laravelは、すべての現代的なウェブアプリケーションで必要とされる一般的な機能に対して、すぐに使えるエレガントなソリューションを備えています。私たちのファーストパーティパッケージは、特定の問題に対して意見を取り入れたソリューションを提供するため、車輪の再発明をする必要はありません。

バックエンド

コード自体が語る

シンプルでエレガントな構文が、驚くべき機能性を実現します。すべての機能は、思慮深く一貫した開発体験を生み出すために検討されています。

認証

1Laravelのルートに認証ミドルウェアを追加します

                                                    
1Route::get('/profile', ProfileController::class)
2 ->middleware('auth');

2Authファサード経由で認証済みユーザーにアクセスできます

                                                    
1use Illuminate\Support\Facades\Auth;
2 
3$user = Auth::user();

認証のドキュメントを読む

認可

1モデルにポリシーを定義します

                                                    
1public function update(User $user, Post $post): Response
2{
3 return $user->id === $post->user_id
4 ? Response::allow()
5 : Response::deny('You do not own this post.');
6}

2Gateファサード経由でポリシーを使用します

                                                    
1Gate::authorize('update', $post);

認可のドキュメントを読む

Eloquent

1データベーステーブルに対応するモデルを定義します

                                                    
1<?php
2 
3namespace App\Models;
4 
5use Illuminate\Database\Eloquent\Model;
6 
7class Flight extends Model
8{
9 // ...
10}

2Eloquentを使用してデータベースからレコードを取得します

                                                    
1use App\Models\Flight;
2 
3foreach (Flight::all() as $flight) {
4 echo $flight->name;
5}

Eloquentのドキュメントを読む

マイグレーション

1データベーステーブルのマイグレーションを作成します

                                                    
1php artisan make:migration create_posts_table --create=posts

2マイグレーションファイルでスキーマを定義します

                                                    
1class CreatePostsTable extends Migration
2{
3 public function up()
4 {
5 Schema::create('posts', function (Blueprint $table) {
6 $table->id();
7 $table->string('title');
8 $table->text('content');
9 $table->foreignId('user_id')->constrained()->onDelete('cascade');
10 $table->timestamps();
11 });
12 }
13}

マイグレーションのドキュメントを読む

バリデーション

1コントローラでバリデーションルールを定義します

                                                    
1public function store(Request $request)
2{
3 $validated = $request->validate([
4 'title' => 'required|max:255',
5 'content' => 'required',
6 'email' => 'required|email',
7 ]);
8}

2ビューでバリデーションエラーを処理します

                                                    
1@if ($errors->any())
2 <div class="alert alert-danger">
3 <ul>
4 @foreach ($errors->all() as $error)
5 <li>{{ $error }}</li>
6 @endforeach
7 </ul>
8 </div>
9@endif

バリデーションのドキュメントを読む

通知とメール

1通知の内容を定義します

                                                    
1class PostCreated extends Notification
2{
3 public function via()
4 {
5 return ['mail', 'database']; // Send via mail and store in database
6 }
7 
8 public function toMail($notifiable)
9 {
10 return (new MailMessage)
11 ->subject('New Post Created')
12 ->line('A new post has been created: ' . $this->post->title)
13 ->action('View Post', url('/posts/' . $this->post->id))
14 ->line('Thank you for using our application!');
15 }
16}

2ユーザーに通知を送信します

                                                    
1public function store(Request $request)
2{
3 $post = Post::create($request->all());
4 
5 $request->user()->notify(new PostCreated($post));
6}

通知とメールのドキュメントを読む

ファイルストレージ

1ファイルシステムを設定します

                                                    
1FILESYSTEM_DRIVER=s3

2コントローラでファイルのアップロードを処理します

                                                    
1public function store(Request $request)
2{
3 if ($request->hasFile('image')) {
4 $path = $request->file('image')->store('images', 'public');
5 }
6}

ファイルストレージのドキュメントを読む

ジョブキュー

1ジョブのロジックを定義します

                                                    
1class ProcessPost implements ShouldQueue
2{
3 public function handle()
4 {
5 $this->post->update([
6 'rendered_content' => Str::markdown($this->post->content)
7 ]);
8 }
9}

2コントローラからジョブをディスパッチします

                                                    
1public function store(Request $request)
2{
3 $post = Post::create($request->all());
4 
5 ProcessPost::dispatch($post);
6}

キューのドキュメントを読む

タスクスケジュール

1コマンドのロジックを定義します

                                                    
1class SendEmails extends Command
2{
3 protected $signature = 'emails:send';
4 
5 protected $description = 'Send scheduled emails';
6 
7 public function handle()
8 {
9 // Send your emails...
10 }
11}

2タスクをスケジュールします

                                                    
1Schedule::command('emails:send')->daily();

タスクスケジューリングのドキュメントを読む

テスト

1Pestを使用してテストを作成します

                                                    
1it('can create a post', function () {
2 $response = $this->post('/posts', [
3 'title' => 'Test Post',
4 'content' => 'This is a test post content.',
5 ]);
6 
7 $response->assertStatus(302);
8 
9 $this->assertDatabaseHas('posts', [
10 'title' => 'Test Post',
11 ]);
12});

2コマンドラインでテストを実行します

                                                    
1php artisan test

テストのドキュメントを読む

イベントとWebSocket

1イベントを作成します

                                                    
1class PostCreated implements ShouldBroadcast
2{
3 use Dispatchable, SerializesModels;
4 
5 public $post;
6 
7 public function __construct(Post $post)
8 {
9 $this->post = $post;
10 }
11}

2コントローラでイベントをディスパッチします

                                                    
1public function store(Request $request)
2{
3 $post = Post::create($request->all());
4 
5 PostCreated::dispatch($post);
6}

3JavaScriptファイルでイベントをリッスンします

                                                    
1Echo.channel("posts." + postId).listen("PostCreated", (e) => {
2 console.log("Post created:", e.post);
3});

イベントのドキュメントを読む

フロントエンド

あらゆるスタックに対応するフロントエンド

伝統的なPHPバックエンドを好む方、Laravel Livewireを使ったモダンなフロントエンドを好む方、あるいはReactやVueが大好きな方でも、Laravelを使えば、高度に洗練され、保守性の高いアプリケーションをわずかな時間で提供できます。

                                                    
1class UserController
2{
3 public function index()
4 {
5 $users = User::active()
6 ->orderByName()
7 ->get(['id', 'name', 'email']);
8 
9 return Inertia::render('Users', [
10 'users' => $users,
11 ]);
12 }
13}
                                                    
1export default ({ users }) => {
2 return (
3 <div>
4 <h1>Users</h1>
5 <ul>
6 {users.map((user) => (
7 <li key={user.id}>{user.name}</li>
8 ))}
9 </ul>
10 </div>
11 );
12};

Inertia

モダンなモノリス

Laravel Inertiaは、あなたのLaravel体験を強化し、React、Vue、Svelteとシームレスに連携します。Inertiaは、バックエンドとフロントエンド間のルーティングとデータ転送を処理するため、APIを構築したり、2つのルートセットを維持したりする必要はありません。

Inertiaのドキュメントを読む

                                                    
1class Counter extends Component
2{
3 public $count = 1;
4 
5 public function increment()
6 {
7 $this->count++;
8 }
9 
10 public function decrement()
11 {
12 $this->count--;
13 }
14 
15 public function render()
16 {
17 return view('livewire.counter');
18 }
19}
                                                    
1<div>
2 <h1>{{ $count }}</h1>
3 
4 <button wire:click="increment">+</button>
5 
6 <button wire:click="decrement">-</button>
7</div>

Livewire

超強力なBlade

Laravel Livewireは、動的でリアクティブなインターフェースをBladeテンプレートに直接もたらすことで、Laravelアプリケーションを変革します。Livewireは、サーバーサイドレンダリングとクライアントサイドのインタラクティビティの間のギャップをシームレスに埋め、Laravelの快適さを離れることなく、モダンでインタラクティブなコンポーネントを作成できます。

Livewireのドキュメントを読む

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

SPAとモバイルアプリ

組み込みの認証

Laravelは、開発者がシングルページアプリケーション(SPA)やモバイルアプリ用の堅牢なバックエンドを簡単かつ効率的に構築できるようにします。RESTful API、認証、データベース管理の組み込みサポートにより、LaravelはバックエンドをVue.jsやReactなどのモダンなフロントエンドフレームワークに接続するプロセスを簡素化します。

Sanctumのドキュメントを読む

デプロイ

マネージドまたはセルフホストのデプロイプラットフォーム

Laravel CloudはLaravelアプリケーション向けのフルマネージドアプリケーションプラットフォームを提供し、ForgeはLaravelアプリケーションを実行するVPSサーバーを自己管理できます。

Cloud

Cloud

製品

次の大きなアイデアをただ世に出したい開発者やチームのために作られた、フルマネージドのアプリケーションプラットフォームです。

プランは月額$0.00から

Forge

Forge

製品

DigitalOcean、Akamai、Vultr、Amazon、HetznerなどでVPSサーバーをプロビジョニングし、無制限のPHPアプリケーションをデプロイできます。

プランは月額$12.00から

監視

アプリケーションの監視、ロギング、テスト

すべてのLaravelアプリケーションは、自信を持ってリリースできるよう、監視、可観測性、テストツールによってエンタープライズ級の品質を達成できます。

Nightwatch

Nightwatch

製品

アプリケーションで何が起きているかを正確に知る必要があるLaravel開発者とチームのために構築された監視機能です。

価格は近日公開

Pulse

Pulse

パッケージ

アプリケーションのパフォーマンスと使用状況を一目で把握。遅いジョブやエンドポイントなどのボトルネックを追跡し、最もアクティブなユーザーを見つけるなど。

無料

Telescope

Telescope

パッケージ

アプリケーションへのリクエスト、例外、ログエントリ、データベースクエリ、キューに入れられたジョブなどに関する洞察を提供するエレガントなデバッグアシスタントです。

無料

Pest

Pest

パッケージ

Pestはシンプルさに重点を置いたテストフレームワークで、PHPでのテストの楽しさを取り戻すために細心の注意を払って設計されています。

無料

コミュニティ

開発者、スタートアップ、企業から信頼されています

世界中の何千もの開発者や企業に参加しましょう。

「Laravelを10年近く使っていますが、他のものに乗り換えようと思ったことは一度もありません。」
Adam Wathan Tailwind 創設者
Adam Wathan
「Laravelは大小さまざまなウェブプロジェクトのための私たちのサワードウスターターであり、マルチツールです。10年経った今も、新鮮で役に立ちます。」
Ian Callahan ハーバード大学美術館
Ian Callahan
「Laravelは、モダンでスケーラブルなウェブアプリを構築する際の苦痛を取り除いてくれます。」
Aaron Francis Try Hard Studios 共同創設者
Aaron Francis
「Laravelは素晴らしい活発なコミュニティに成長しました。Laravelは単なるPHPフレームワーク以上のものです。」
Bobby Bouwmann Enrise 開発者
Bobby Bouwmann
「LaravelはPHPエコシステムにおける新鮮な空気であり、その周りには素晴らしいコミュニティがあります。」
Erika Heidi Minicli 作者
Erika Heidi
「フレームワーク、エコシステム、そしてコミュニティ - それは完璧なパッケージです。」
Zuzana Kunckova Larabelles 創設者
Zuzana Kunckova
「Laravelでアプリをリリースすることは、パフォーマンス、柔軟性、シンプルさのバランスを取りながら、優れた開発者体験を保証することを意味します。」
Peter Steenbergen Elastic
Peter Steenbergen
「AI開発は速く進みます。Laravelを使えば、AI搭載アプリケーションのリリースがこれまでになく簡単になります。」
Jordan Price Bestie AI
Jordan Price
「Laravelを使えば、クライアントのために、通常なら数年かかるところを数ヶ月でスケーラブルで高性能なウェブアプリやAPIを構築できます。」
Matt Stauffer Tighten
Matt Stauffer
「Laravelのクラス最高のテストツールは、堅牢なアプリを迅速にリリースするための安心感を与えてくれます。」
Michael Dyrynda Laravel Artisan + Laracon AU オーガナイザー
Michael Dyrynda
「Laravelは、1日数億のリクエストと数十億のバックグラウンド処理を扱うサービスを非常に簡単に作成できるようにしてくれました。」
Sebastien Armand Square 開発者
Sebastien Armand
「Laravelは、他のどのソリューションよりも早く製品を立ち上げるのに役立ち、コミュニティの進化とともに市場投入を早めることができました。」
Steve McDougall Laravel Transporter 作者
Steve McDougall
「Laravelは私のキャリアとビジネスにとってロケット燃料のようなものでした。」
Chris Arter Bankrate 開発者
Chris Arter
「過去10年間、すべてのプロジェクトでLaravelを使用してきましたが、今日に至るまで、これに匹敵するものはありません。」
Philo Hermans Anystack 創設者
Philo Hermans
「Laravelを10年以上使っていますが、これなしでPHPを使うことは想像できません。」
Eric L. Barnes Laravel News 創設者
Eric L. Barnes
「Laravelは、やらなければならないからではなく、できるからコードを書く開発者のためのものです。」
Luke Downing メーカー + 開発者
Luke Downing
「Laravelエコシステムは、私たちのビジネスの成功に不可欠でした。このフレームワークにより、私たちは迅速に動き、定期的にリリースすることができます。」
Jack Ellis Fathom Analytics 創設者
Jack Ellis
「私は長年にわたり、DXを次のレベルに引き上げるというLaravelのこだわりに楽しませてもらっています。優れた設計で、素晴らしいドキュメントがあります。」
Freek Van der Herten Spatie オーナー
Freek Van der Herten
「Laravelはまさに喜びです。私が望むどんなWeb関連のものでも、記録的な速さで、そして楽しく構築できます。」
Caleb Porzio Livewire、Alpine.js 作者
Caleb Porzio
「(多くの)異なるエコシステムを試すまで、Laravelのワンストップショップソリューションの真価を完全には理解していませんでした。Laravelは別格です!」
Joseph Silber Bouncer 作者
Joseph Silber

次の大きなアイデアを生み出す準備はできましたか?

今すぐ始めて、素晴らしいものを世に送り出しましょう。

Laravelは最も生産的な方法です
ソフトウェアを構築、デプロイ、監視します。