Laravel

roadmap.sh: https://roadmap.sh/laravel

Suggested path through the Laravel nodes. Each node links to its lesson when written.

Nodes

Prerequisites

  • Solid PHP 8+ fundamentals
  • OOP and namespaces
  • Composer
  • SQL and relational databases
  • HTTP and REST basics
  • Command line basics

Getting started

  • What is Laravel?
  • Installing Laravel (installer, Composer)
  • Laravel Sail / Herd / Valet
  • Directory structure
  • The .env file and configuration
  • Artisan CLI
  • Application lifecycle

Routing

  • Basic routes
  • Route parameters and constraints
  • Named routes
  • Route groups
  • Route model binding
  • Resource routes
  • Fallback routes
  • Rate limiting routes

Middleware

  • What is middleware?
  • Global vs route middleware
  • Creating custom middleware
  • Middleware parameters
  • Middleware groups

Controllers and requests

  • Controllers
  • Single-action controllers
  • Resource controllers
  • Request lifecycle
  • Form Request validation
  • Validation rules
  • Dependency injection in controllers

Views and frontend

  • Blade templating
  • Blade components and slots
  • Layouts and inheritance
  • Directives and control structures
  • Passing data to views
  • Asset bundling with Vite
  • Laravel Breeze / Jetstream
  • Livewire
  • Inertia.js

Eloquent ORM

  • Models and conventions
  • Migrations
  • Seeders and factories
  • Query builder
  • Eloquent relationships (one-to-one, one-to-many, many-to-many, polymorphic)
  • Eager loading and N+1
  • Accessors, mutators, and casts
  • Scopes (local and global)
  • Soft deletes
  • Collections
  • Database transactions

Authentication and authorization

  • Authentication starter kits
  • Manual authentication
  • Guards and providers
  • Laravel Sanctum
  • Laravel Passport
  • Gates
  • Policies
  • Email verification
  • Password reset

Services and architecture

  • Service container
  • Service providers
  • Facades
  • Contracts
  • Dependency injection
  • Events and listeners
  • Observers
  • Action / service classes

Asynchronous and background work

  • Queues and jobs
  • Queue workers and Horizon
  • Job batching and chaining
  • Task scheduling (cron)
  • Broadcasting and websockets (Reverb)
  • Notifications (mail, database, Slack)

APIs

  • API routes
  • API Resources (transformers)
  • API authentication with Sanctum
  • Pagination
  • Rate limiting
  • Versioning

Caching, storage, and mail

  • Cache drivers and usage
  • Sessions
  • Filesystem and cloud storage
  • File uploads
  • Mailables and Markdown mail
  • Localization

Testing

  • PHPUnit in Laravel
  • Pest
  • Feature vs unit tests
  • HTTP tests
  • Database testing and RefreshDatabase
  • Mocking and fakes
  • Browser tests (Dusk)

Ecosystem and deployment

  • Laravel Forge
  • Laravel Envoyer / zero-downtime deploys
  • Laravel Vapor (serverless)
  • Laravel Octane
  • Telescope (debugging)
  • Pint (code style)
  • Larastan / static analysis
  • Deployment best practices

Resources

See resources.md.

Project ideas

  • Build a multi-tenant SaaS starter with Sanctum auth, Eloquent relationships, queued jobs for emails, and an API consumed by a small Vue/Inertia frontend.
  • Create a blogging platform with Blade + Livewire, policies for authorization, full-text search, and Pest feature tests covering every route.
  • Build a REST API with API Resources, rate limiting, pagination, and OpenAPI docs, deployed with Forge and queue workers via Horizon.

1 item under this folder.