Getting Started with Laravel 12: A Complete Guide
LaravelFeatured

Getting Started with Laravel 12: A Complete Guide

Discover the power of Laravel 12, the latest version of PHP's most popular framework. Learn about new features, installation process, and build your first application with Eloquent ORM, Blade templating, and Artisan commands.

Hussein Abdi
Sep 2
8 min read

Introduction to Laravel 12

Laravel 12 represents the latest evolution of PHP's most popular framework, bringing significant improvements in performance, developer experience, and modern web development practices. Whether you're new to Laravel or upgrading from previous versions, this guide will help you get started with confidence.

What's New in Laravel 12?

Laravel 12 introduces several groundbreaking features that make development faster and more enjoyable:

  • Improved Performance: Up to 35% faster response times compared to Laravel 11
  • Enhanced Eloquent ORM: New relationship types and advanced query optimizations
  • Better Testing Tools: More intuitive test writing with new assertion methods and parallel testing
  • Streamlined Authentication: Simplified setup for common authentication scenarios
  • New Blade Components: More powerful and flexible component system
  • Enhanced Queue System: Better job batching and failure handling

Installation and Setup

Getting started with Laravel 12 is straightforward. You'll need PHP 8.3 or higher and Composer installed on your system.

Creating Your First Laravel 12 Project

composer create-project laravel/laravel my-laravel-app
cd my-laravel-app
php artisan serve

This will create a new Laravel application and start the development server at http://localhost:8000.

Understanding the MVC Architecture

Laravel follows the Model-View-Controller (MVC) architectural pattern, which separates your application into three main components:

Models

Models represent your data and business logic. In Laravel, Eloquent ORM makes working with databases incredibly intuitive:

class User extends Model
{
    protected $fillable = ['name', 'email', 'password'];
    
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}

Views

Views handle the presentation layer using Blade templating engine:

{{-- resources/views/welcome.blade.php --}}
@extends('layouts.app')

@section('content')
    

Welcome to {{ $title }}

@foreach($posts as $post)

{{ $post->title }}

{{ $post->excerpt }}

@endforeach @endsection

Controllers

Controllers handle HTTP requests and coordinate between models and views:

class PostController extends Controller
{
    public function index()
    {
        $posts = Post::with('author')->latest()->get();
        return view('posts.index', compact('posts'));
    }
    
    public function show(Post $post)
    {
        return view('posts.show', compact('post'));
    }
}

Working with Eloquent ORM

Eloquent is Laravel's built-in Object-Relational Mapping (ORM) system that makes database interactions elegant and intuitive.

Creating Models and Migrations

php artisan make:model Post -m

This creates both a model and a migration file. Update your migration:

Schema::create('posts', function (Blueprint $table) {
    $table->id();
    $table->string('title');
    $table->text('content');
    $table->string('slug')->unique();
    $table->foreignId('user_id')->constrained();
    $table->timestamps();
});

Routing in Laravel

Laravel's routing system is powerful and flexible. Define routes in routes/web.php:

Route::get('/', [HomeController::class, 'index']);
Route::resource('posts', PostController::class);
Route::get('/posts/{post:slug}', [PostController::class, 'show']);

Artisan Commands

Artisan is Laravel's command-line interface that provides helpful commands for development:

  • php artisan make:controller - Create controllers
  • php artisan make:model - Create models
  • php artisan migrate - Run database migrations
  • php artisan tinker - Interactive shell
  • php artisan serve - Start development server

Best Practices for Laravel Development

To make the most of Laravel 12, follow these best practices:

1. Use Service Containers

Laravel's service container is a powerful tool for managing dependencies:

class UserService
{
    public function createUser($data)
    {
        // Business logic here
        return User::create($data);
    }
}

// In your controller
public function store(Request $request, UserService $userService)
{
    $user = $userService->createUser($request->validated());
    return response()->json($user, 201);
}

2. Validate Input Data

Always validate user input using Laravel's validation features:

$request->validate([
    'title' => 'required|max:255',
    'content' => 'required|min:10',
    'email' => 'required|email|unique:users',
]);

3. Use Resource Controllers

Resource controllers provide a conventional structure for CRUD operations:

Route::resource('posts', PostController::class);

Conclusion

Laravel 12 continues the framework's tradition of making web development enjoyable and productive. With its elegant syntax, powerful features, and comprehensive ecosystem, Laravel remains the go-to choice for PHP developers worldwide.

Whether you're building a simple blog or a complex web application, Laravel 12 provides the tools and structure you need to succeed. Start with the basics covered in this guide, then explore advanced features like queues, broadcasting, and package development as your skills grow.

Happy coding with Laravel 12! 🚀

Tags

#Laravel#PHP#Backend#Web Development