Giter Site home page Giter Site logo

laravel-roadmap-learning-path's Introduction

Laravel Learning Path

This repository contains the ordered list of Laravel topics to learn, step-by-step, with related links.

If you want to add a topic, link, or any other suggestion, please open Issues or Pull Requests.

Notice 1: The same table below is also available as a database, so you would be able to transform it to any other format you want - PDF, chart, etc. See file roadmap.sql

Notice 2: This content was filled into an adminpanel generated with our QuickAdminPanel - here's a video demo of that process on Youtube. By purchasing QuickAdminPanel, you support my free initiatives, like this Roadmap.


Beginner Level

Create your very first simple Laravel project

Link icons: ๐Ÿ“– Official Docs ๐ŸŽฌ Video ๐Ÿ“„ Article ๐Ÿ”  Course

Topic Learning Links
Routing and Controllers: Basics ๐ŸŽฌ Laravel 8 Routing: Important Change You Need to Know
Callback Functions and Route::view() ๐Ÿ“– Basic Routing
๐Ÿ“– View Routes
Routing to a Single Controller Method ๐Ÿ“– Basic Controllers with Routes
Route Parameters ๐Ÿ“– Route Parameters
Route Naming ๐Ÿ“– Names Routes
๐ŸŽฌ Laravel: Why You Need Route Names?
Route Groups ๐Ÿ“– Route Groups
๐ŸŽฌ Laravel Route Grouping: Simple to Very Complex
๐ŸŽฌ More videos
Blade Basics ๐ŸŽฌ 9 Quick Tips about Laravel Blade
Displaying Variables in Blade ๐Ÿ“– Blade: Displaying Data
Blade If-Else and Loop Structures ๐Ÿ“– Blade: If-Statements
๐Ÿ“– Blade Loops
Layout: @include, @extends, @section, @yield ๐Ÿ“– Blade: Layout Using Template Inheritance
Blade Components ๐Ÿ“– Blade Components
๐ŸŽฌ Laravel Blade Components: Two Examples - Laravel Breeze/UI
Auth Basics 8 Tips & Tricks about Laravel Auth
Starter Kits: Breeze (Tailwind) or Laravel UI (Bootstrap) ๐Ÿ“– Laravel Breeze Official Documentation
๐Ÿ“– Laravel UI: Official Github Page
๐ŸŽฌ Laravel 8 Auth: 5 "Latest" Things You Need to Know
More videos
Default Auth Model and Access its Fields from Anywhere ๐Ÿ“– Retrieving the Authenticated User
Check Auth in Controller / Blade ๐Ÿ“– Determining If The Current User Is Authenticated
๐Ÿ“– Blade: Authentication Directives
Auth Middleware ๐Ÿ“– Protecting Routes
Database Basics
Database Migrations ๐Ÿ“– Database Migrations
๐ŸŽฌ Laravel Migrations: Table Created but Foreign Key Failed?
More videos
Basic Eloquent Model and MVC: Controller -> Model -> View ๐Ÿ“– Eloquent: Getting Started
Eloquent Relationships: belongsTo / hasMany / belongsToMany ๐Ÿ“– Eloquent Relationships: One-to-Many
๐Ÿ“– Eloquent Relationships: BelongsTo
๐Ÿ“– Eloquent Relationships: Many-to-Many
๐ŸŽฌ How to Safely Change DB Relations in Live Laravel Project?
Eager Loading and N+1 Query Problem ๐Ÿ“– Relationships: Eager Loading
๐ŸŽฌ Laravel N+1 Query Detector: Don't Forget Eager Loading
Full Simple CRUD
Route Resource and Resourceful Controllers ๐Ÿ“– Laravel Resource Controllers
๐Ÿ“„ Simple Laravel CRUD with Resource Controllers [digitalocean.com]
๐ŸŽฌ Laravel Nested Resource Controllers: Two-Level Deep
๐ŸŽฌ More videos
Forms, Validation and Form Requests ๐Ÿ“– Laravel Validation
๐ŸŽฌ New in Laravel 6.13: Format Validation Error Field Name ๐ŸŽฌ More videos
File Uploads and Storage Folder Basics ๐Ÿ“– Filesystem: File Uploads
๐ŸŽฌ Laravel: How to Upload File During User Registration
More videos
Table Pagination ๐Ÿ“– Database Pagination

Beginner Demo-Project: Personal Blog

To achieve this Beginner level, you would need to practice by creating something like this personal blog project.

Inside of the repository above, you will find all the details of the task, with a few example solutions.


Advanced Beginner Level

The goal of this level is to find the first job or freelance gig

Link icons: ๐Ÿ“– Official Docs ๐ŸŽฌ Video ๐Ÿ“„ Article ๐Ÿ”  Course

Topic Learning Links
Routing Advanced ๐ŸŽฌ Laravel: 8 Tips for Advanced Routing
๐ŸŽฌ More videos
Route Model Binding ๐Ÿ“– Route Model Binding
๐ŸŽฌ Laravel Route Model Binding: All You Need To Know
๐ŸŽฌ More videos
Route Redirect ๐Ÿ“– Redirect Routes
Middleware
Create Custom Middleware Class ๐Ÿ“– Defining Middleware
Database Advanced
Database Seeders and Factories ๐Ÿ“– Database: Seeding
๐Ÿ“– Defining Model Factories
๐ŸŽฌ Laravel Factories: Generate and Re-use Fake Records
๐ŸŽฌ More videos
Eloquent Query Scopes ๐Ÿ“– Eloquent: Query Scopes
๐ŸŽฌ Same Eloquent Where Condition? Refactor into Local Scopes
Polymorphic relationships ๐Ÿ“– Polymorphic Relationships
๐ŸŽฌ Laravel.io Portal: Polymorphic Relations Example
Eloquent Accessors and Mutators ๐Ÿ“– Accessors & Mutators
Eloquent Collections ๐Ÿ“– Eloquent Collections
๐Ÿ“– General Laravel Collections
Soft Deletes ๐Ÿ“– Soft Deleting
Auth Advanced
Authorization: Roles/Permissions, Gates, Policies ๐Ÿ“– Authorization
๐ŸŽฌ Laravel Roles and Permissions: All CORE Things You Need To Know
More videos
Authorization: Extra Packages - Spatie Permission, Bouncer, etc ๐ŸŽฌ Spatie Laravel Permission: Example Project Review
๐Ÿ“„ Two Best Laravel Packages to Manage Roles/Permissions
๐Ÿ“– spatie/laravel-permission
๐Ÿ“– JosephSilber/bouncer
Authentication: Email Verification ๐Ÿ“– Email Verification
๐ŸŽฌ How to Translate/Customize Laravel Auth Default Emails
File Uploads Advanced ๐Ÿ”  File Uploads in Laravel
Drivers and Disks, Example of Amazon S3 ๐Ÿ“– File Storage
๐ŸŽฌ Laravel: How to Upload Files to Amazon S3
Extra Packages: Spatie Medialibrary, Intervention Image, etc ๐Ÿ“– spatie/laravel-medialibrary
๐Ÿ“– intervention/image
๐ŸŽฌ Spatie Media Library Pro: Laravel File Uploads with Great UX [REVIEW]
๐ŸŽฌ More videos
API Basics ๐Ÿ”  How to Create Laravel API
๐ŸŽฌ Create Model with API Controller - in one Artisan Command
Laravel API: Be Careful When Doing Changes
API Routes and Controllers ๐Ÿ“– API Resource Routes
๐Ÿ“– Default Route Files
๐ŸŽฌ Junior Code Review: Simple Laravel API - in 5 Different Ways
Working with API Clients: Postman or Alternatives ๐Ÿ“– Postman API Client
API Eloquent Resources ๐Ÿ“– Eloquent: API Resources
๐ŸŽฌ Laravel API Result: Add Fields with Map or Appends
API Auth with Sanctum ๐Ÿ“– Laravel Sanctum
๐ŸŽฌ Laravel API Auth with Sanctum and API Tokens
๐ŸŽฌ More videos
API Error Handling and Status Codes ๐ŸŽฌ Laravel API 404 Error: Customize Exception Message
๐Ÿ“„ HTTP Status Codes
Debugging Errors
Log Files in Laravel ๐Ÿ“– Logging
Try-Catch and Laravel Exceptions ๐Ÿ“– Error Handling
๐ŸŽฌ Exceptions in Laravel: Why/How to Use and Create Your Own
Local Debugging Tools: Debugbar, Telescope, Ray ๐Ÿ“– barryvdh/laravel-debugbar
๐Ÿ“– Laravel Telescope
๐Ÿ“– Spatie Ray (Premium Tool)
๐ŸŽฌ Debug Eloquent Queries from API: Laravel Telescope
๐ŸŽฌ Spatie Ray: Laravel Debugging with Pleasure
Customizing Error Pages and Messages ๐Ÿ“– Custom HTTP Error Pages
๐ŸŽฌ Laravel Error Pages: Change Text or Customize Layouts
๐ŸŽฌ New in Laravel 8.26: Override 404 Page with Route Missing
(optional) Third Party Bug Trackers: Bugsnag, Flare, Sentry, Rollbar ๐Ÿ“– Bugsnag Laravel
๐Ÿ“– Flare Homepage
๐Ÿ“– Sentry Laravel
๐Ÿ“– Rollbar Laravel
๐ŸŽฌ Bug Tracking in Laravel: Bugsnag vs Flare [Demo/Review]
Sending Email ๐ŸŽฌ Laravel: 3 Ways to Send a Welcome Email (Controller vs Observer vs Events)
Mailables and Mail Facade ๐Ÿ“– Mail & Mailables
Configure Drivers/Services: Mailgun, Mailtrap, etc ๐Ÿ“„ How to Send Email From Laravel, and Why We Need 3rd Party Providers For It
๐Ÿ“– Mail: Drivers Prerequisites
Notifications System: Email, SMS, Slack, etc. ๐Ÿ“– Notifications
๐ŸŽฌ Laravel Notifications: "Database" Driver - Demo Project
Automated Testing with PHPUnit ๐ŸŽฌ Why People (Don't) Write Automated Tests?
"Smoke" Tests to Check if Pages are Loading ๐Ÿ“– Testing: Getting Started
๐Ÿ”  Laravel: PHPUnit Testing for Beginners
๐ŸŽฌ PHPUnit in Laravel: Simple Example of Why/How to Test
Configure Testing Database and Test CRUD Operations ๐Ÿ“– Database Testing
Deployment and Version Control
Git Version Control ๐Ÿ“– Git
๐ŸŽฌ Git in Laravel. Part 1 - Branches: Main, Develop and Feature
๐ŸŽฌ More videos
Deployment on Live Servers ๐Ÿ“– Deployment
๐Ÿ“„ How to Deploy Laravel Projects to Live Server: The Ultimate Guide
๐Ÿ“„ What Server is Needed to Deploy Laravel Projects
๐ŸŽฌ How we Deploy Laravel: Branches, Staging Servers, Forge and Envoyer

Advanced Beginner Demo-Project: Simple CRM

To achieve this Advanced Beginner level, you would need to practice by creating something like this simple CRM project.

Inside of the repository above, you will find all the details of the task, with an example solution.


Mid Level

Master all Laravel features with 3-5 years of practical experience

Link icons: ๐Ÿ“– Official Docs ๐ŸŽฌ Video ๐Ÿ“„ Article ๐Ÿ”  Course

Topic Learning Links
Routing Extra Features
Route Caching ๐Ÿ“– Route Caching
Rate Limiting ๐Ÿ“– Rate Limiting
๐ŸŽฌ Laravel: Create Public API with Cache and Rate Limits
Invokable controllers ๐Ÿ“– Single Action Controllers
Database/Eloquent Extra Features
Model Observers ๐Ÿ“– Eloquent Observers
๐ŸŽฌ Laravel Model: Check if Any Field Was Changed
๐ŸŽฌ Eloquent Observers or Events Listeners? Which is Better?
Raw Database Queries ๐Ÿ“– Query Builder: Raw Expressions
All Eloquent Features ๐Ÿ“– All About Eloquent
๐Ÿ”  Eloquent: Expert Level
๐Ÿ“„ 20 Laravel Eloquent Tips and Tricks
๐ŸŽฌ Laravel Collections: 5 Methods with Real Examples
More videos
Various Extra Laravel Features
Custom Blade Directives ๐Ÿ“– Extending Blade
Events and Listeners ๐Ÿ“– Events and Listeners
๐ŸŽฌ Laravel: 3 Ways to Send a Welcome Email (Controller vs Observer vs Events)
๐ŸŽฌ Laravel: Why Observers and Event Listeners are "Risky"
Laravel HTTP Client and Guzzle ๐Ÿ“– HTTP Client
๐ŸŽฌ Laravel and External APIs: Get Data with HTTP Client
Login with X: Laravel Socialite ๐Ÿ“– Laravel Socialite
Creating Artisan Commands ๐Ÿ“– Writing Artisan Commands
๐ŸŽฌ How to Create Artisan Commands in Laravel
Task Scheduling ๐Ÿ“– Task Scheduling
๐ŸŽฌ Laravel Task Scheduling: Run Artisan Command Hourly
Caching ๐Ÿ“– Cache
๐ŸŽฌ Cache Eloquent Query Results to Load Pages Instantly
Real-time: Broadcasting, Echo and Pusher ๐Ÿ“– Broadcasting
Jobs and Queues ๐Ÿ”  Queues in Laravel
Queueable Classes and Jobs ๐Ÿ“– Creating Jobs
๐Ÿ“– Queueing Notifications
๐Ÿ“– Queued Event Listeners
๐Ÿ“– Queueing Mail
๐ŸŽฌ Laravel Queues 101: Example with Sending Emails
Job Dispatching, Batching and Chaining ๐Ÿ“– Dispatching Jobs
Processing Failed Jobs ๐Ÿ“– Dealing with Failed Jobs
Configuring Queues: Drivers, Redis, Supervisor ๐Ÿ“– Running the Queue Worker
๐Ÿ“– Configuring Supervisor
Laravel Horizon (optional, if you use Redis) ๐Ÿ“– Laravel Horizon
API Advanced
Upload Files via API ๐Ÿ“„ Laravel API: How to Upload File from Vue.js
Generate API Documentation ๐Ÿ“„ Laravel API Documentation with OpenAPI/Swagger
๐ŸŽฌ Scribe: New Package for Laravel API Documentation
API Versioning ๐Ÿ“„ Versioning your REST API with Laravel
๐ŸŽฌ Versioning your API: from V1 to V2 and Beyond [video from my course]
API with OAuth and Laravel Passport ๐Ÿ“– Laravel Passport
๐ŸŽฌ Laravel API Auth Demo: Passport, oAuth and Sanctum
Only-API Projects with Front-end like Vue.js ๐Ÿ”  Vue.js + Laravel: CRUD with SPA
Only-API Projects with Mobile Apps ๐Ÿ“„ Using Sanctum to authenticate a mobile app
(optional) Starter Kits: Laravel Jetstream and Fortify
Laravel Jetstream (requires Livewire/Inertia knowledge) ๐Ÿ“– Laravel Jetstream
๐Ÿ”  Laravel Jetstream+Livewire: Real Mini-Project
๐ŸŽฌ Laravel Jetstream: How it Works and Example How to Customize
Laravel Fortify ๐Ÿ“– Laravel Fortify
๐ŸŽฌ Laravel Fortify: Four Auth Things to Customize
Payments
Laravel Cashier with Stripe/Paddle ๐Ÿ“– Laravel Cashier (Stripe)
๐Ÿ“– Laravel Cashier (Paddle)
Custom Payment Providers: PayPal, Mollie, etc ๐Ÿ“„ Subscription billing with Laravel Cashier for Mollie
๐Ÿ“„ How To Integrate Paypal Payment Gateway In Laravel
Automated Testing Advanced
TDD: Test-Driven Development ๐Ÿ”  Build A Laravel App With TDD
๐Ÿ”  TDD With Laravel
Mocking ๐Ÿ“– Mocking
(optional) Laravel Dusk ๐Ÿ“– Laravel Dusk
Full-Text Search
Laravel Scout ๐Ÿ“– Laravel Scout
Drivers: ElasticSearch, Algolia or MeiliSearch ๐Ÿ“„ ElasticSearch Driver for Laravel Scout
๐Ÿ“– Algolia: Scout Extended
๐Ÿ“„ Full-Text Search with MeiliSearch and Laravel Scout
Laravel Packages
Contributing to Packages, making Pull Requests ๐ŸŽฌ How to Contribute to Laravel Docs (or any open-source repository)
Create Laravel Packages ๐Ÿ“– Package Development
๐Ÿ”  Laravel Package Development

Senior Level

Responsibility for architecture decisions on large projects

Link icons: ๐Ÿ“– Official Docs ๐ŸŽฌ Video ๐Ÿ“„ Article ๐Ÿ”  Course

Topic Learning Links
PHP/Laravel Design Patterns ๐ŸŽฌ Laravel Design Patterns - Bobby Bouwmann - Laracon EU 2018 Amsterdam
๐Ÿ”  Laracasts: Design Patterns in PHP
๐ŸŽฌ Colin Decarlo - Design Patterns with Laravel [Laracon 2018]
๐ŸŽฌ Matt Stauffer - Patterns That Pay Off [Laracon 2018]
๐Ÿ”  Design Patterns in PHP
Creational Design Patterns ๐Ÿ“„ Design Patterns PHP: Creational
Structural Design Patterns ๐Ÿ“„ Design Patterns PHP: Structural
Behavioral Design Patterns ๐Ÿ“„ Design Patterns PHP: Behavioral
Well-written Code
SOLID Code ๐ŸŽฌ Becoming a better developer by using the SOLID design principles by Katerina Trajchevska
๐Ÿ“„ Writing Maintainable Code: SOLID Principles Explained in PHP (Laravel)
๐Ÿ”  Laracasts: SOLID Principles in PHP
๐ŸŽฌ PHP Solid Principles [Playlist]
Scalable Code ๐Ÿ”  Scaling Laravel
๐ŸŽฌ Enterprise Laravel by Matt Stauffer
๐Ÿ“„ What the hell is scalable code anyway?
Maintainable Code ๐Ÿ“„ How would you know if you've written readable and easily maintainable code? [forum thread]
๐Ÿ“„ Crafting maintainable Laravel applications
๐Ÿ“„ 7 Golden Rules of Clean, Simple and Maintainable Code
Best Practices and Standards ๐Ÿ“„ Repository: alexeymezenin / laravel-best-practices
๐Ÿ”  PHP: The Right Way
๐Ÿ“„ Reddit: What are your Laravel best practices?
Large Datasets
Large Database Structures ๐Ÿ”  How to Structure Databases in Laravel
NoSQL Solutions ๐Ÿ“– MongoDB and Laravel Integration
๐Ÿ“„ MongoDB + Laravel = Love โ€” When to use NoSQL
Eloquent/SQL Query Optimization ๐Ÿ“„ 18 Tips to optimize laravel database queries
๐Ÿ“„ Optimizing Laravel Part 2: Improving Query Performance with Database Indexing
๐Ÿ”  Eloquent Performance Patterns
Scaling to Multiple Databases ๐Ÿ“„ Scaling Laravel App with Multiple Databases
๐Ÿ“„ Multiple DB Connections in Laravel
Working with High-Traffic Projects
Stability and Zero-Downtime Deployments ๐Ÿ“– Laravel Deployer
๐Ÿ“– Envoyer - Zero Downtime PHP Deployment
Performance Optimization and Caching ๐Ÿ”  Performant Laravel
๐Ÿ“„ The Ultimate Performance Checklist For Laravel Apps
๐Ÿ“„ How to Optimize PHP Laravel Web Application for High Performance?
Ensuring Code Quality
Writing Testable Code ๐Ÿ“„ How to write testable code
๐Ÿ“„ Refactoring towards testability
Continuous Integration and Continuous Delivery (CI/CD) ๐Ÿ“„ How to create a CI/CD for a Laravel application using GitHub Actions
๐Ÿ“„ Configure Laravel 8 for CI/CD with Jenkins and GitHub โ€” Part 1
๐Ÿ“„ Build, Test, and Deploy Your Laravel Application With GitHub Actions

laravel-roadmap-learning-path's People

Contributors

hajmo avatar justinbyrne avatar krekas avatar povilaskorop avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.