動画を見る 2分
世界中の何千もの企業から信頼されています
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): Response2{3 return $user->id === $post->user_id4 ? Response::allow()5 : Response::deny('You do not own this post.');6}
2Gateファサード経由でポリシーを使用します
1Gate::authorize('update', $post);
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}
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 @endforeach7 </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 ShouldQueue2{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
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};
Laravel Inertiaは、あなたのLaravel体験を強化し、React、Vue、Svelteとシームレスに連携します。Inertiaは、バックエンドとフロントエンド間のルーティングとデータ転送を処理するため、APIを構築したり、2つのルートセットを維持したりする必要はありません。
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>
Laravel Livewireは、動的でリアクティブなインターフェースをBladeテンプレートに直接もたらすことで、Laravelアプリケーションを変革します。Livewireは、サーバーサイドレンダリングとクライアントサイドのインタラクティビティの間のギャップをシームレスに埋め、Laravelの快適さを離れることなく、モダンでインタラクティブなコンポーネントを作成できます。
1Route::get('/api/user', function (Request $request) {2 return $request->user();3})->middleware('auth:sanctum');
Laravelは、開発者がシングルページアプリケーション(SPA)やモバイルアプリ用の堅牢なバックエンドを簡単かつ効率的に構築できるようにします。RESTful API、認証、データベース管理の組み込みサポートにより、LaravelはバックエンドをVue.jsやReactなどのモダンなフロントエンドフレームワークに接続するプロセスを簡素化します。
Laravel CloudはLaravelアプリケーション向けのフルマネージドアプリケーションプラットフォームを提供し、ForgeはLaravelアプリケーションを実行するVPSサーバーを自己管理できます。
すべてのLaravelアプリケーションは、自信を持ってリリースできるよう、監視、可観測性、テストツールによってエンタープライズ級の品質を達成できます。
アプリケーションへのリクエスト、例外、ログエントリ、データベースクエリ、キューに入れられたジョブなどに関する洞察を提供するエレガントなデバッグアシスタントです。
無料
世界中の何千もの開発者や企業に参加しましょう。
「Laravelを10年近く使っていますが、他のものに乗り換えようと思ったことは一度もありません。」
「Laravelは大小さまざまなウェブプロジェクトのための私たちのサワードウスターターであり、マルチツールです。10年経った今も、新鮮で役に立ちます。」
「Laravelは、モダンでスケーラブルなウェブアプリを構築する際の苦痛を取り除いてくれます。」
「Laravelは素晴らしい活発なコミュニティに成長しました。Laravelは単なるPHPフレームワーク以上のものです。」
「LaravelはPHPエコシステムにおける新鮮な空気であり、その周りには素晴らしいコミュニティがあります。」
「フレームワーク、エコシステム、そしてコミュニティ - それは完璧なパッケージです。」
「Laravelでアプリをリリースすることは、パフォーマンス、柔軟性、シンプルさのバランスを取りながら、優れた開発者体験を保証することを意味します。」
「AI開発は速く進みます。Laravelを使えば、AI搭載アプリケーションのリリースがこれまでになく簡単になります。」
「Laravelを使えば、クライアントのために、通常なら数年かかるところを数ヶ月でスケーラブルで高性能なウェブアプリやAPIを構築できます。」
「Laravelのクラス最高のテストツールは、堅牢なアプリを迅速にリリースするための安心感を与えてくれます。」
「Laravelは、1日数億のリクエストと数十億のバックグラウンド処理を扱うサービスを非常に簡単に作成できるようにしてくれました。」
「Laravelは、他のどのソリューションよりも早く製品を立ち上げるのに役立ち、コミュニティの進化とともに市場投入を早めることができました。」
「Laravelは私のキャリアとビジネスにとってロケット燃料のようなものでした。」
「過去10年間、すべてのプロジェクトでLaravelを使用してきましたが、今日に至るまで、これに匹敵するものはありません。」
「Laravelを10年以上使っていますが、これなしでPHPを使うことは想像できません。」
「Laravelは、やらなければならないからではなく、できるからコードを書く開発者のためのものです。」
「Laravelエコシステムは、私たちのビジネスの成功に不可欠でした。このフレームワークにより、私たちは迅速に動き、定期的にリリースすることができます。」
「私は長年にわたり、DXを次のレベルに引き上げるというLaravelのこだわりに楽しませてもらっています。優れた設計で、素晴らしいドキュメントがあります。」
「Laravelはまさに喜びです。私が望むどんなWeb関連のものでも、記録的な速さで、そして楽しく構築できます。」
「(多くの)異なるエコシステムを試すまで、Laravelのワンストップショップソリューションの真価を完全には理解していませんでした。Laravelは別格です!」