نماد سایت حامد نادرفر

نقشه راه کامل لاراول

این یک نقشه راه لاراول که توسط Povilas Korop گردآواری شده است. Povilas یکی بهترین افرادی هست که تو حوزه لاراول و PHP فعالیت می‌کنه و با کانال یوتویوب LaravelDaily آموزش‌های کامل و در عین حال ساده‌ای به مخاطباش ارائه میده.

سطح 1 از 4 – مبتدی

ساخت یک پروژه لاراولی به صورت سریع و ساده

LinksRouting and Controllers
Test: Let’s Test Your Laravel Routing Skills: Complete 12 TasksBasics
Official Docs: Basic Routing
Official Docs: View Routes
Callback Functions and Route::view
Official Docs: Basic Controllers with RoutesRouting to a Single Controller Method
Official Docs: Route ParametersRoute Parameters
Official Docs: Names Routes
Video: Laravel: Why You Need Route Names
Route Naming
Official Docs: Route Groups
Video: Laravel Route Grouping: Simple to Very Complex
Video: More videos
Route Groups
LinksBlade
Test: Let’s Test Your Laravel Blade Skills: Complete 8 Tasks
Video: 9 Quick Tips about Laravel Blade
Basics
Official Docs: Blade: Displaying DataDisplaying Variables in Blade
Official Docs: Blade: If-Statements
Official Docs: Blade Loops
Blade If-Else and Loop Structures
Official Docs: Blade: Layout Using Template InheritanceLayout: @include, @extends, @section, @yield
Official Docs: Blade Components
Video: Laravel Blade Components: Two Examples – Laravel Breeze/UI
Blade Components
LinksAuth
Test: Test Your Laravel Auth Skills: Complete 7 Tasks
Video: 8 Tips & Tricks about Laravel Auth
Basics
Official Docs: Laravel Breeze Official Documentation
Official Docs: Laravel UI: Official Github Page
Video: Laravel 8 Auth: 5 “Latest” Things You Need to Know
Video: More videos
Starter Kits: Breeze (Tailwind) or Laravel UI (Bootstrap)
Official Docs: Retrieving the Authenticated UserDefault Auth Model and Access its Fields from Anywhere
Official Docs: Determining If The Current User Is Authenticated
Official Docs: Blade: Authentication Directives
Check Auth in Controller / Blade
Official Docs: Protecting RoutesAuth Middleware
LinksDatabase
Test: Test Your Laravel Migrations Skills: Complete 10 Tasks
Official Docs: Database Migrations
Video: Laravel Migrations: Table Created but Foreign Key Failed?
Video: More videos
Database Migrations
Test: Test Your Eloquent Basic Skills: 11 Tasks to Complete
Official Docs: Eloquent: Getting Started
Basic Eloquent Model and MVC: Controller -> Model -> View
Test: Test Your Eloquent Relationships Skills: 9 Tasks to Complete
Official Docs: Eloquent Relationships: One-to-One
Official Docs: Eloquent Relationships: One-to-Many
Official Docs: Eloquent Relationships: BelongsTo
Official Docs: Eloquent Relationships: Many-to-Many
Video: How to Safely Change DB Relations in Live Laravel Project
Eloquent Relationships: belongsTo / hasMany / belongsToMany
Official Docs: Relationships: Eager Loading
Video: Laravel N+1 Query Detector: Don’t Forget Eager Loading
Eager Loading and N+1 Query Problem
LinksFull Simple CRUD
Official Docs: Laravel Resource Controllers
Article: Simple Laravel CRUD with Resource Controllers digitalocean.com
Video: Laravel Nested Resource Controllers: Two-Level Deep
Video: More videos
Route Resource and Resourceful Controllers
Test: Test Your Laravel Validation Skills: Complete 9 Tasks
Official Docs: Laravel Validation
Video: New in Laravel 6.13: Format Validation Error Field Name
Video: More videos
Forms, Validation and Form Requests
Test: Test Your Laravel File Upload Skills: Complete 7 Tasks
Official Docs: Filesystem: File Uploads
Video: Laravel: How to Upload File During User Registration
Video: More videos
File Uploads and Storage Folder Basics
Official Docs: Database PaginationTable Pagination

سطح 2 از 4 – مبتدی پیشرفته

هدف این سطح یافتن اولین شغل یا کار به صورت فریلنسری است.

LinksRouting
Video: Laravel: 8 Tips for Advanced Routing
Video: More videos
Advanced
Official Docs: Route Model Binding
Video: Laravel Route Model Binding: All You Need To Know
Video: More videos
Route Model Binding
Official Docs: Redirect RoutesRoute Redirect
LinksMiddleware
Official Docs: Defining MiddlewareCreate Custom Middleware Class
LinksDatabase Advanced
Official Docs: Database: Seeding
Official Docs: Defining Model Factories
Video: Laravel Factories: Generate and Re-use Fake Records
Video: More videos
Database Seeders and Factories
Official Docs: Eloquent: Query Scopes
Video: Same Eloquent Where Condition? Refactor into Local Scopes
Eloquent Query Scopes
Official Docs: Polymorphic Relationships
Video: Laravel.io Portal: Polymorphic Relations Example
Polymorphic relationships
Official Docs: Accessors & MutatorsEloquent Accessors and Mutators
Official Docs: Eloquent Collections
Official Docs: General Laravel Collections
Eloquent Collections
Official Docs: Soft DeletingSoft Deletes
LinksAuth Advanced
Official Docs: Authorization
Video: Laravel Roles and Permissions: All CORE Things You Need To Know
Video: More videos
Authorization: Roles/Permissions, Gates, Policies
Video: Spatie Laravel Permission: Example Project Review
Article: Two Best Laravel Packages to Manage Roles/Permissions
Official Docs: spatie/laravel-permission
Official Docs: JosephSilber/bouncer
Authorization: Extra Packages – Spatie Permission, Bouncer, etc
Official Docs: Email Verification
Video: How to Translate/Customize Laravel Auth Default Emails
Authentication: Email Verification
LinksFile Uploads
Course: File Uploads in LaravelAdvanced
Official Docs: File Storage
Video: Laravel: How to Upload Files to Amazon S3
Drivers and Disks, Example of Amazon S3
Official Docs: spatie/laravel-medialibrary
Official Docs: intervention/image
Video: Spatie Media Library Pro: Laravel File Uploads with Great UX REVIEW
Video: More videos
Extra Packages: Spatie Medialibrary, Intervention Image, etc
LinksAPI
Course: How to Create Laravel API
Video: Create Model with API Controller – in one Artisan Command
Video: Laravel API: Be Careful When Doing Changes
Basics
Official Docs: API Resource Routes
Official Docs: Default Route Files
Video: Junior Code Review: Simple Laravel API – in 5 Different Ways
API Routes and Controllers
Official Docs: Postman API ClientWorking with API Clients: Postman or Alternatives
Official Docs: Eloquent: API Resources
Video: Laravel API Result: Add Fields with Map or Appends
API Eloquent Resources
Official Docs: Laravel Sanctum
Video: Laravel API Auth with Sanctum and API Tokens
Video: More videos
API Auth with Sanctum
Video: Laravel API 404 Error: Customize Exception Message
Article: HTTP Status Codes
API Error Handling and Status Codes
LinksDebugging Errors
Official Docs: LoggingLog Files in Laravel
Official Docs: Error Handling
Video: Exceptions in Laravel: Why/How to Use and Create Your Own
Try-Catch and Laravel Exceptions
Official Docs: barryvdh/laravel-debugbar
Official Docs: Laravel Telescope
Official Docs: Spatie Ray (Premium Tool)
Video: Debug Eloquent Queries from API: Laravel Telescope
Video: Spatie Ray: Laravel Debugging with Pleasure
Local Debugging Tools: Debugbar, Telescope, Ray
Official Docs: Custom HTTP Error Pages
Video: Laravel Error Pages: Change Text or Customize Layouts
Video: New in Laravel 8.26: Override 404 Page with Route Missing
Customizing Error Pages and Messages
Official Docs: Bugsnag Laravel
Official Docs: Flare Homepage
Official Docs: Sentry Laravel
Official Docs: Rollbar Laravel
Video: Bug Tracking in Laravel: Bugsnag vs Flare Demo/Review
(optional) Third-Party Bug Trackers: Bugsnag, Flare, Sentry, Rollbar
LinksSending Email
Video: Laravel: 3 Ways to Send a Welcome Email (Controller vs Observer vs Events)Start with email in Laravel
Official Docs: Mail & MailablesMailables and Mail Facade
Article: How to Send Email From Laravel, and Why We Need 3rd Party Providers For It
Official Docs: Mail: Drivers Prerequisites
Configure Drivers/Services: Mailgun, Mailtrap, etc
Official Docs: Notifications
Video: Laravel Notifications: “Database” Driver – Demo Project
Notifications System: Email, SMS, Slack
LinksMulti-Language
Official Docs: Localization
Course: Multi-language Laravel
Localization / Translations / Multi-Language
Article: Multi-Language Routes and Locales with Authentication
Article: Laravel Localization Made Easy
Translating Static Texts
Article: Easy Laravel Localization Tutorial with Blog Use Case and Repository Example
Video: Multi-Language Laravel: Part 2 – DB Models with “title_en”
Video: Multi-Language Laravel: Part 3 – Packages for DB Models
Translating Models in Database
LinksHow to Test
Video: PHPUnit in Laravel: Simple Example of Why/How to TestAutomated Testing with PHPUnit
Official Docs: Testing: Getting Started
Course: Testing Laravel: Course by Spatie
Course: My Course: Laravel: PHPUnit Testing for Beginners
Video: Laravel TDD in “Live” Mode: Checkout Code Review
“Smoke” Tests to Check if Pages are Loading
Official Docs: Database TestingConfigure Testing Database and Test CRUD Operations
LinksDeployment and Version Control
Official Docs: Git
Video: Git in Laravel. Part 1 – Branches: Main, Develop and Feature
Video: More videos
Git Version Control
Official Docs: Deployment
Article: How to Deploy Laravel Projects to Live Server: The Ultimate Guide
Article: What Server is Needed to Deploy Laravel Projects
Video: How we Deploy Laravel: Branches, Staging Servers, Forge and Envoyer
Deployment on Live Servers

سطح 3 از 4 – متوسط

می‌توانید با 3 تا 5 سال تجربه عملی به تمام ویژگی‌های لاراول تسلط داشته باشید.

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

سطح 4 از 4 – حرفه‌ای

حالا وقت گرفتن مسئولیت و تصمیمات معماری در پروژه‌های بزرگ رسیده است.

LinksDesign Patterns
Video: Laravel Design Patterns – Bobby Bouwmann – Laracon EU 2018 Amsterdam
Course: Laracasts: Design Patterns in PHP
Video: Colin Decarlo – Design Patterns with Laravel Laracon 2018
Video: Matt Stauffer – Patterns That Pay Off Laracon 2018
Course: Design Patterns in PHP
Article: Design Patterns for Humans
PHP/Laravel Design Patterns
Article: Design Patterns PHP: CreationalCreational Design Patterns
Article: Design Patterns PHP: StructuralStructural Design Patterns
Article: Design Patterns PHP: BehavioralBehavioral Design Patterns
LinksWell-written Code
Course: SOLID Code in Laravel
Video: Becoming a better developer by using the SOLID design principles by Katerina Trajchevska
Article: Writing Maintainable Code: SOLID Principles Explained in PHP (Laravel)
Course: Laracasts: SOLID Principles in PHP
Video: PHP Solid Principles Playlist
SOLID Code
Course: Scaling Laravel
Video: Enterprise Laravel by Matt Stauffer
Article: What the hell is scalable code anyway?
Scalable Code
Course: 10+ Laravel Refactoring Examples
Article: How would you know if you’ve written readable and easily maintainable code? forum thread
Article: Crafting maintainable Laravel applications
Article: 7 Golden Rules of Clean, Simple and Maintainable Code
Maintainable Code
Article: Repository: alexeymezenin / laravel-best-practices
Course: PHP: The Right Way
Article: Reddit: What are your Laravel best practices?
Best Practices and Standards
LinksLarge Datasets
Course: How to Structure Databases in Laravel
Course: GraphQL in Laravel From Scratch
Large Database Structures
Official Docs: MongoDB and Laravel Integration
Article: MongoDB + Laravel = Love — When to use NoSQL
NoSQL Solutions
Course: Better Eloquent Performance
Article: 18 Tips to optimize laravel database queries
Article: Optimizing Laravel Part 2: Improving Query Performance with Database Indexing
Course: Eloquent Performance Patterns
Eloquent/SQL Query Optimization
Article: Scaling Laravel App with Multiple Databases
Article: Multiple DB Connections in Laravel
Scaling to Multiple Databases
LinksWorking with High-Traffic Projects
Official Docs: Laravel Deployer
Official Docs: Envoyer – Zero Downtime PHP Deployment
Stability and Zero-Downtime Deployments
Course: Performant Laravel
Article: The Ultimate Performance Checklist For Laravel Apps
Article: How to Optimize PHP Laravel Web Application for High Performance?
Performance Optimization and Caching
LinksEnsuring Code Quality
Article: How to write testable code
Article: Refactoring towards testability
Writing Testable Code
Article: How to create a CI/CD for a Laravel application using GitHub Actions
Article: Configure Laravel 8 for CI/CD with Jenkins and GitHub — Part 1
Article: Build, Test, and Deploy Your Laravel Application With GitHub Actions
Continuous Integration and Continuous Delivery (CI/CD)