Laravel 12 Beginner to Advanced: Complete Guide
Last Updated on Jul 17, 2025
- Introduction
- Laravel 12 Minimum Requirements & Support Policy
- Why PHP 8.2 Is Required
- Installing & Upgrading to Laravel 12
- Core Concepts (Beginner to Intermediate)
- Directory Structure
- MVC & Routing Basics
- Blade Templating
- Models & Migrations
- Eloquent ORM
- Middleware & Validation
- Authentication, Authorization & Starter Kits
- Advanced Features
- Testing & Debugging
- New Laravel 12 Enhancements
- Deployment Best Practices
- Final Thoughts
- Key Takeaways
Introduction
Laravel is a name that resonates throughout the PHP community. With its elegant syntax, robust ecosystem, and developer-friendly tools, Laravel has become the go-to framework for modern web development. Laravel 12, released on February 24, 2025, continues this tradition, streamlining workflows and boosting performance with support for the latest PHP advancements.
This guide is designed to be the definitive resource for both beginners and experienced developers. From the basics of MVC to advanced features like event broadcasting, queues, and domain-driven design, you'll learn everything you need to build professional, scalable Laravel applications.
Laravel 12 Minimum Requirements & Support Policy
-
Released: February 24, 2025
-
Minimum PHP Version: 8.2 (Supports PHP 8.2–8.4)
-
Required PHP extensions: Ctype, Mbstring, OpenSSL, PDO, XML, Fileinfo, Tokenizer, BCMath, JSON
-
Support timeline:
- Bug fixes until August 13, 2026
- Security fixes until February 24, 2027
Note: BCMath and JSON extensions are mandatory for certain Laravel components like encryption and session handling.
Why PHP 8.2 Is Required
Laravel 12 harnesses new PHP 8.2 features:
- Readonly classes: Enforce immutability on class properties.
- Intersection & Union Types (DNF types): Increase type safety for method parameters and return types.
null
,false
, andtrue
as explicit types: Improves method signature clarity.- Deprecation of dynamic properties: Encourages explicit property declarations.
- Performance and security improvements: Core enhancements in PHP 8.2 reduce runtime overhead and harden security mechanisms.
These features help Laravel maintain type safety, clarity, and performance while aligning with modern PHP development practices.
Installing & Upgrading to Laravel 12
New Project Installation
Ensure your system is running PHP 8.2+ and has Composer installed:
composer create-project laravel/laravel:^12.0 my-app
Or:
composer global require laravel/installer
laravel new my-app
For macOS/Windows, Laravel Herd or XAMPP now include PHP 8.2+ pre-configured environments.
Upgrading from Laravel 11
-
Update
composer.json
:"laravel/framework": "^12.0", "phpunit/phpunit": "^11.0", "pestphp/pest": "^3.0"
-
Ensure PHP ≥ 8.2.
-
Run:
composer update
-
Upgrade Carbon Library: Laravel 12 uses Carbon 3 for date and time manipulation. Replace deprecated methods accordingly.
-
Review deprecated Laravel APIs in the upgrade guide.
-
Run migrations and validate your application:
php artisan migrate php artisan test
Important: Always back up your project and database before upgrading.
Core Concepts (Beginner to Intermediate)
Directory Structure
Understanding Laravel's directory structure is essential:
- app/ – Models, controllers, policies, commands, form requests.
- bootstrap/ – App bootstrap files, including cache setup.
- config/ – Configuration files for all services and features.
- database/ – Migrations, factories, seeders.
- public/ – Entry point of web requests (
index.php
). - resources/ – Views, assets (CSS/JS), language files.
- routes/ – Web, API, console, and channel routes.
- storage/ – Logs, cache, compiled views, file uploads.
- vendor/ – Composer-managed dependencies.
MVC & Routing Basics
Laravel follows the Model-View-Controller (MVC) pattern:
-
Routes are defined in
routes/web.php
orroutes/api.php
. -
Example:
Route::get('/home', [HomeController::class, 'index'])->name('home');
Controllers
Generate controllers using Artisan:
php artisan make:controller HomeController
Controllers handle request logic and return views or JSON responses.
Request Lifecycle
Laravel's lifecycle starts from an HTTP request hitting public/index.php
, routing through middleware, controller, services, and then rendering a response.
Blade Templating
Blade is Laravel’s templating engine:
-
Layouts: Define master layouts with
@yield
and@section
. -
Components: Reusable UI pieces like alerts or modals.
-
Example:
@extends('layouts.app') @section('content') <h1>Welcome, {{ $user->name }}</h1> <x-alert type="success" message="Operation successful" /> @endsection
Models & Migrations
Create a model with migration:
php artisan make:model Post -m
Run migrations:
php artisan migrate
Environment Configuration
Database settings reside in .env
:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_db
DB_USERNAME=root
DB_PASSWORD=secret
Eloquent ORM
Laravel’s ORM simplifies database operations:
$post = Post::create(['title' => 'New Post']);
$posts = Post::where('published', true)->get();
Relationships
- One to Many:
$user->posts()
- Many to Many:
$user->roles()
- Polymorphic:
morphMany()
, useful for comments or likes.
Middleware & Validation
Middleware
Generate custom middleware:
php artisan make:middleware CheckAge
Register in app/Http/Kernel.php
.
Validation
Request validation example:
$request->validate([
'title' => 'required|max:255',
'email' => 'required|email',
]);
Or using Form Requests:
php artisan make:request StorePostRequest
Authentication, Authorization & Starter Kits
Starter Kits
As of Laravel 12:
- Laravel Breeze is officially deprecated in favor of new starter kits supporting React, Vue, and Livewire with Flux UI.
- WorkOS AuthKit adds support for Passkeys and SSO.
Installation Example:
composer require laravel/jetstream
php artisan jetstream:install livewire
npm install && npm run dev
php artisan migrate
Note: Jetstream replaces Breeze for Laravel 12’s official kits.
Authorization
- Gates: For single permission checks.
- Policies: Attach permission logic to models.
- Example policy registration in
AuthServiceProvider
.
Advanced Features
API Development
-
Authentication: Laravel Sanctum or Passport.
-
Define API routes in
routes/api.php
. -
Use API Resources for structured JSON:
return new PostResource($post);
Queues & Jobs
Queue configuration in config/queue.php
.
Create a job:
php artisan make:job SendEmailJob
SendEmailJob::dispatch($user);
php artisan queue:work
Batching & Prioritization
Laravel 12 expands queue functionality with:
- Batch processing (
Bus::batch()
). - Queue prioritization by connection.
Event Broadcasting
-
Configure Pusher or Laravel WebSockets.
-
Useful for real-time apps:
broadcast(new EventName($data));
Livewire & Inertia.js
- Livewire 3 introduces Flux UI components.
- Inertia.js integrates Vue/React with Laravel, acting as a full SPA framework without building an API backend separately.
Testing & Debugging
-
PHPUnit 11 and Pest 3 support.
-
Run tests:
php artisan test
-
Debugging Tools: Laravel Debugbar, Telescope for monitoring requests, queries, and exceptions.
New Laravel 12 Enhancements
Str::of(...)->encrypt()
anddecrypt()
helpers.- Enhanced
Str::is()
with multi-line regex. - Improved Service Providers with contextual dependency injection.
- Updated Blade directives and IDE auto-completion support.
- Fluent query builder enhancements.
- Strengthened security: MFA, password hashing, CSRF protection.
- Expanded queue management.
- Docker & CI/CD: First-class support via Sail and Laravel Forge.
- Artisan Enhancements: Interactive prompts, better command scheduling.
Deployment Best Practices
-
Server Requirements:
- PHP 8.2+
- Required extensions installed.
- Node.js & npm/yarn (for frontend assets).
-
Deployment Steps:
-
Set correct folder permissions:
sudo chown -R www-data:www-data storage bootstrap/cache
-
Cache optimization:
php artisan config:cache php artisan route:cache php artisan view:cache
-
Run migrations:
php artisan migrate --force
-
Set up queue workers and cron jobs.
-
Enable SSL and monitoring tools.
-
Final Thoughts
Laravel 12 is a refined, performance-oriented framework that builds on the strengths of its predecessors. With modern PHP support, enhanced developer experience, and powerful features, it's ideal for both foundational learning and advanced applications.
Follow the official documentation and stay engaged with community updates. Use this guide as your central reference—study, experiment, build real projects, and contribute. Laravel is more than a framework; it’s a community and a journey.
Key Takeaways
- Laravel 12 demands PHP 8.2+ and essential extensions.
- Released on February 24, 2025 with solid long-term support.
- New official starter kits now favor Jetstream and WorkOS AuthKit.
- Modern PHP features improve type safety, performance, and code clarity.
- Core strengths remain: Eloquent, queues, events, middleware, Blade.
- DevOps-ready with tools for Docker, CI/CD, and infrastructure automation.
- Artisan CLI is now more interactive and developer-friendly.