Laravelは、非常に生産性の高いフルスタックWebフレームワークです。Laravelとその豊富なエコシステムをLivewire、React、またはVueと組み合わせることで、次の大きなアイデアを構築し、これまで考えられなかったほどの速さでリリースできます。
Laravelは、非常に生産性の高いフルスタックWebフレームワークです。Laravelとその豊富なエコシステムをLivewire、React、またはVueと組み合わせることで、次の大きなアイデアを構築し、これまで考えられなかったほどの速さでリリースできます。
Laravelには、すべての最新Webアプリケーションに必要な一般的な機能のためのエレガントなソリューションが標準装備されています。パッケージを探したり、車輪の再発明に時間を費やすのをやめて、素晴らしいアプリケーションの構築を始めましょう。
ユーザーの認証は、認証ミドルウェアをLaravelルート定義に追加するのと同じくらい簡単です。
Route::get('/profile', ProfileController::class) ->middleware('auth');
ユーザーが認証されると、Auth
ファサードを介して認証されたユーザーにアクセスできます。
use Illuminate\Support\Facades\Auth; // Get the currently authenticated user...$user = Auth::user();
もちろん、独自の認証ミドルウェアを定義して、認証プロセスをカスタマイズできます。
Laravelの認証機能の詳細については、認証ドキュメントを参照してください。
認証されたユーザーが特定のアクションを実行する権限があるかどうかを確認する必要があることがよくあります。Laravelのモデルポリシーはそれを簡単に行えます。
php artisan make:policy UserPolicy
生成されたポリシー クラスで認証ルールを定義したら、コントローラー メソッドでユーザーの要求を認証できます。
public function update(Request $request, Invoice $invoice){ Gate::authorize('update', $invoice); $invoice->update(/* ... */);}
データベースが怖いですか?そうではありません。LaravelのEloquent ORMを使用すると、アプリケーションのデータとのやり取りが簡単になり、モデル、マイグレーション、および関係をすばやく足場を組むことができます。
php artisan make:model Invoice --migration
モデルの構造と関係を定義したら、Eloquentの強力で表現力豊かな構文を使用してデータベースとやり取りできます。
// Create a related model...$user->invoices()->create(['amount' => 100]); // Update a model...$invoice->update(['amount' => 200]); // Retrieve models...$invoices = Invoice::unpaid()->where('amount', '>=', 100)->get(); // Rich API for model interactions...$invoices->each->pay();
マイグレーションはデータベースのバージョン管理のようなもので、チームはアプリケーションのデータベーススキーマ定義を定義および共有できます。
public function up(): void{ Schema::create('flights', function (Blueprint $table) { $table->uuid()->primary(); $table->foreignUuid('airline_id')->constrained(); $table->string('name'); $table->timestamps(); });}
Laravelには90を超える強力な組み込みバリデーションルールがあり、Laravel Precognitionを使用すると、フロントエンドでライブバリデーションを提供できます。
public function update(Request $request){ $validated = $request->validate([ 'email' => 'required|email|unique:users', 'password' => Password::required()->min(8)->uncompromised(), ]); $request->user()->update($validated);}
Laravelを使用して、メール、Slack、SMS、アプリ内などで、美しくスタイルされた通知をユーザーにすばやく送信します。
php artisan make:notification InvoicePaid
通知を生成したら、アプリケーションのユーザーの1人にメッセージを簡単に送信できます。
$user->notify(new InvoicePaid($invoice));
Laravelは、ローカルファイルシステムやAmazon S3のようなクラウドベースのファイルシステムとやり取りするための単一の統合APIを提供する、堅牢なファイルシステム抽象化レイヤーを提供します。
$path = $request->file('avatar')->store('s3');
ファイルがどこに保存されていても、Laravelのシンプルでエレガントな構文を使用してファイルとやり取りできます。
$content = Storage::get('photo.jpg'); Storage::put('photo.jpg', $content);
Laravelを使用すると、遅いジョブをバックグラウンドキューにオフロードして、Webリクエストを軽快に保つことができます。
$podcast = Podcast::create(/* ... */); ProcessPodcast::dispatch($podcast)->onQueue('podcasts');
ワークロードを処理するために必要な数のキューワーカーを実行できます。
php artisan queue:work redis --queue=podcasts
キューの可視性と制御をさらに強化するために、Laravel Horizonは、Laravel駆動のRedisキュー用に美しいダッシュボードとコード駆動構成を提供します。
詳細はこちら
表現力豊かな構文で定期的なジョブとコマンドをスケジュールし、複雑な構成ファイルに別れを告げましょう。
$schedule->job(NotifySubscribers::class)->hourly();
Laravelのスケジューラーは、複数のサーバーを処理でき、組み込みの重複防止機能も提供しています。
$schedule->job(NotifySubscribers::class) ->dailyAt('9:00') ->onOneServer() ->withoutOverlapping();
Laravelはテスト用に構築されています。ユニットテストからブラウザテストまで、アプリケーションのデプロイに自信を持てるでしょう。
$user = User::factory()->create(); $this->browse(fn (Browser $browser) => $browser ->visit('/login') ->type('email', $user->email) ->type('password', 'password') ->press('Login') ->assertPathIs('/home') ->assertSee("Welcome {$user->name}"));
Laravelのイベントを使用すると、アプリケーション全体でイベントを送受信でき、リスナーをバックグラウンドキューに簡単にディスパッチできます。
OrderShipped::dispatch($order);
class SendShipmentNotification implements ShouldQueue{ public function handle(OrderShipped $event): void { // ... }}
フロントエンドアプリケーションは、Laravel EchoとWebSocketsを使用してLaravelイベントをサブスクライブすることもでき、リアルタイムで動的なアプリケーションを構築できます。
Echo.private(`orders.${orderId}`) .listen('OrderShipped', (e) => { console.log(e.order); });
これはほんの表面をなぞっただけです。Laravelは、メール検証、レート制限、カスタムコンソールコマンドなど、Webアプリケーションの構築に必要なすべてのものをカバーしています。詳細を学ぶためにLaravelドキュメントを確認するか、Laravelブートキャンプですぐに始めましょう。
アプリケーションのフロントエンドを構築する方法はたくさんあります。ありがたいことに、Laravelではオプションが幅広く開かれています。従来のPHPバックエンド、Laravel Livewireを使用した最新のフロントエンド、ReactやVueに飽きることがない場合でも、Laravelを使用すると、非常に洗練された保守可能なアプリケーションを短時間で配信できます。
React、Vue、またはSvelteでLaravelを強化
PHPによるリアクティブなサーバーレンダリングテンプレート
かつてないほど迅速に強力なAPIを構築
Laravel Inertia は、Laravel バックエンドとフロントエンド間のルーティングとデータ転送を処理します。API を構築したり、2 つのルートセットを維持したりする必要はありません。Laravel のすべての機能を 1 つの素晴らしいモノレポで使用して、データベースからフロントエンドのページコンポーネントのプロパティにデータを簡単に渡すことができます。
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}
1import Layout from './Layout' 2 3export default function Users({ users }) { 4 return ( 5 <Layout> 6 {users.map(user => ( 7 <Link href={route('users.show', user)}> 8 {user.name} ({user.email}) 9 </Link>10 ))}11 </Layout>12 )13}
Inertia を使用すると、サーバーレンダリングされたマルチページアプリケーションを作成する開発エクスペリエンスとシンプルさと、JavaScript SPA のユーザーエクスペリエンスと応答性を実現できます。
フロントエンドのコンポーネントは、API 呼び出しやデータ操作ではなく、ユーザーのインタラクションに焦点を当てることができます。手動で HTTP リクエストをトリガーしたり、応答を処理したりする必要はもうありません。
Inertia は、検索エンジン最適化の恩恵を受けるアプリケーション向けに、初期ページロードでのサーバーサイドレンダリングも提供します。
アプリケーションの最初のページロードは、Inertia を搭載した SPA とページプロパティを 1 回のリクエストで返します。リンクのクリックやフォームの送信による後続のリクエストは、必要なページプロパティのみを自動的に返します。
新しいアセットをデプロイすると、Inertia は自動的に次のリクエストをフルページロードとして実行するため、ユーザーは最新のアセットを見逃すことなく利用できます。
Livewire は、JavaScript フレームワークの代わりにサーバーレンダリングされたテンプレートを使用して、動的なインターフェースを構築するための最新の方法です。サーバーレンダリングされたアプリケーションを構築するシンプルさとスピードと、JavaScript SPA のユーザーエクスペリエンスを兼ね備えています。実際に見てみないと信じられないでしょう。
1use Livewire\Component; 2 3class Search extends Component 4{ 5 public $search = ''; 6 7 public function render() 8 { 9 $users = User::search($this->search)->get();10 11 return view('livewire.search', [12 'users' => $users,13 ]);14 }15}
1<div> 2 <input wire:model="search" 3 type="text" 4 placeholder="Search users..." /> 5 6 <ul> 7 @foreach ($users as $user) 8 <li>{{ $user->username }}</li> 9 @endforeach10 </ul>11</div>
Livewire を使用する場合、DOM や状態を管理するために JavaScript は必要ありません。いくつかのインタラクションのために少しだけ追加します。Alpine.js は、Livewire アプリケーションと組み合わせるのに最適な軽量 JavaScript ライブラリです。
Livewire コンポーネントの状態が変化すると、フロントエンドが自動的に更新されます。しかし、Livewire はそれだけではありません。リアルタイム検証、イベント処理、ファイルダウンロード、承認などのサポートが含まれています。
Livewire は、Blade テンプレート言語を使用してサーバー上で HTML をレンダリングします。ページをリアクティブにするために必要な JavaScript を自動的に追加し、データが変更されるとコンポーネントを自動的に再レンダリングして DOM を更新します。
フロントエンドは必要ないですか?問題ありません。Laravel は、JavaScript SPA およびモバイルアプリケーションに最適なバックエンド API です。使い慣れたフロントエンド開発ワークフローを維持しながら、Laravel のすべての機能にアクセスできます。
1class UserController2{3 public function index()4 {5 return User::active()6 ->orderByName()7 ->paginate(25, ['id', 'name', 'email']);8 }9}
1{ 2 "data": [ 3 { 4 "id": 1, 5 "name": "Taylor Otwell", 7 }, 8 // ... 9 ],10 "from": 1,11 "to": 25,12 "total": 50,13 "per_page": 25,14 "current_page": 1,15 "last_page": 2,16 "first_page_url": "https://api.laravel.app/users?page=1",17 "last_page_url": "https://api.laravel.app/users?page=2",18 "next_page_url": "https://api.laravel.app/users?page=2",19 "prev_page_url": null,20 "path": "https://api.laravel.app/users",21}
認証については、Laravel の安全なクッキーベースの認証を利用できます。または、モバイルアプリケーションを構築する場合、またはフロントエンドがバックエンド API とは別にホストされている場合は、Laravel Sanctum または Laravel Passport を使用できます。
API が非常に大規模に動作する場合は、Laravel アプリケーションを Laravel Octane および Laravel Vapor と組み合わせて、負担をかけずにトラフィックを処理します。
Livewire と React のどちらが好きでも、Laravel のスターターキットを使用すると、すぐに実行を開始できます。数分で、Laravel と Tailwind をお好みのフロントエンドと組み合わせた、完全に機能するアプリケーションを手に入れることができます。
Laravel Breeze は、Tailwind スタイルの認証ユーザープロファイル管理テンプレートを含む軽量のスターターキットです。
Laravel の最大の強みは、その情熱的なコミュニティとエコシステムです。世界中で開催されるカンファレンスを楽しんだり、お近くのミートアップに立ち寄ってみてください。専用のコースプラットフォームである Laracasts から学習し、豊富なパッケージとチュートリアルをお楽しみください。