Laravel Master Docs
Laravel Master Docs
Bleeding edge version created from master branch of official documentation
About the Book
This book is an up-to-date compilation of the official documentation pages hosted on http://laravel.com/docs to help the community to have an easy to read & organised offline documentation that can be used as a portable reference.
I will try my best to keep this book in sync with the official documentation by reviewing the changes in documentation repo periodically. If you find any error in the documentation or want to contribute, please feel free to fork the documentation repo in github and send pull request with corrections/enhancements. When your pull request will be accepted & merged into the repo, those updates will automatically be available in this book through next periodic sync.
Bundles that include this book
Table of Contents
-
## Prologue {#—prologue}
-
Release Notes
- Versioning Scheme
- Support Policy
- Laravel 5.5 (LTS)
-
Upgrade Guide
- Upgrading To 5.5.0 From 5.4
-
Contribution Guide
- Bug Reports
- Core Development Discussion
- Which Branch?
- Security Vulnerabilities
- Coding Style
-
Release Notes
-
## Getting Started {#—getting-started}
-
Installation
- Installation
- Web Server Configuration
-
Configuration
- Introduction
- Environment Configuration
- Accessing Configuration Values
- Configuration Caching
- Maintenance Mode
-
Directory Structure
- Introduction
- The Root Directory
- The App Directory
-
Laravel Homestead
- Introduction
- Installation & Setup
- Daily Usage
- Network Interfaces
- Updating Homestead
- Old Versions
- Provider Specific Settings
-
Laravel Valet
- Introduction
- Installation
- Serving Sites
- Sharing Sites
- Custom Valet Drivers
- Other Valet Commands
-
Deployment
- Introduction
- Server Configuration
- Optimization
- Deploying With Forge
-
Installation
-
## Architecture Concepts {#—architecture-concepts}
-
Request Lifecycle
- Introduction
- Lifecycle Overview
- Focus On Service Providers
-
Service Container
- Introduction
- Binding
- Resolving
- Container Events
- PSR-11
-
Service Providers
- Introduction
- Writing Service Providers
- Registering Providers
- Deferred Providers
-
Facades
- Introduction
- When To Use Facades
- How Facades Work
- Real-Time Facades
- Facade Class Reference
-
Contracts
- Introduction
- When To Use Contracts
- How To Use Contracts
- Contract Reference
-
Request Lifecycle
-
## The Basics {#—the-basics}
-
Routing
- Basic Routing
- Route Parameters
- Named Routes
- Route Groups
- Route Model Binding
- Form Method Spoofing
- Accessing The Current Route
-
Middleware
- Introduction
- Defining Middleware
- Registering Middleware
- Middleware Parameters
- Terminable Middleware
-
CSRF Protection
- Introduction
- Excluding URIs From CSRF Protection
- X-CSRF-TOKEN
- X-XSRF-TOKEN
-
Controllers
- Introduction
- Basic Controllers
- Controller Middleware
- Resource Controllers
- Dependency Injection & Controllers
- Route Caching
-
HTTP Requests
- Accessing The Request
- Input Trimming & Normalization
- Retrieving Input
- Files
- Configuring Trusted Proxies
-
HTTP Responses
- Creating Responses
- Redirects
- Other Response Types
- Response Macros
-
Views
- Creating Views
- Passing Data To Views
- View Composers
-
URL Generation
- Introduction
- The Basics
- URLs For Named Routes
- URLs For Controller Actions
- Default Values
-
HTTP Session
- Introduction
- Using The Session
- Adding Custom Session Drivers
-
Validation
- Introduction
- Validation Quickstart
- Form Request Validation
- Manually Creating Validators
- Working With Error Messages
- Available Validation Rules
- Conditionally Adding Rules
- Validating Arrays
- Custom Validation Rules
-
Errors & Logging
- Introduction
- Configuration
- The Exception Handler
- HTTP Exceptions
- Logging
-
Routing
-
## Frontend {#—frontend}
-
Blade Templates
- Introduction
- Template Inheritance
- Components & Slots
- Displaying Data
- Control Structures
- Including Sub-Views
- Stacks
- Service Injection
- Extending Blade
-
Localization
- Introduction
- Defining Translation Strings
- Retrieving Translation Strings
- Overriding Package Language Files
-
JavaScript & CSS Scaffolding
- Introduction
- Writing CSS
- Writing JavaScript
-
Compiling Assets (Laravel Mix)
- Introduction
- Installation & Setup
- Running Mix
- Working With Stylesheets
- Working With JavaScript
- Copying Files & Directories
- Versioning / Cache Busting
- Browsersync Reloading
- Environment Variables
- Notifications
-
Blade Templates
-
## Security {#—security}
-
Authentication
- Introduction
- Authentication Quickstart
- Manually Authenticating Users
- HTTP Basic Authentication
- Adding Custom Guards
- Adding Custom User Providers
- Events
-
API Authentication (Passport)
- Introduction
- Installation
- Configuration
- Issuing Access Tokens
- Password Grant Tokens
- Implicit Grant Tokens
- Client Credentials Grant Tokens
- Personal Access Tokens
- Protecting Routes
- Token Scopes
- Consuming Your API With JavaScript
- Events
- Testing
-
Authorization
- Introduction
- Gates
- Creating Policies
- Writing Policies
- Authorizing Actions Using Policies
-
Encryption
- Introduction
- Configuration
- Using The Encrypter
-
Hashing
- Introduction
- Basic Usage
-
Resetting Passwords
- Introduction
- Database Considerations
- Routing
- Views
- After Resetting Passwords
- Customization
-
Authentication
-
## Digging Deeper {#—digging-deeper}
-
Artisan Console
- Introduction
- Writing Commands
- Defining Input Expectations
- Command I/O
- Registering Commands
- Programmatically Executing Commands
-
Broadcasting
- Introduction
- Concept Overview
- Defining Broadcast Events
- Authorizing Channels
- Broadcasting Events
- Receiving Broadcasts
- Presence Channels
- Client Events
- Notifications
-
Cache
- Configuration
- Cache Usage
- Cache Tags
- Adding Custom Cache Drivers
- Events
-
Collections
- Introduction
- Available Methods
- Method Listing
- Higher Order Messages
-
Events
- Introduction
- Registering Events & Listeners
- Defining Events
- Defining Listeners
- Queued Event Listeners
- Dispatching Events
- Event Subscribers
-
File Storage
- Introduction
- Configuration
- Obtaining Disk Instances
- Retrieving Files
- Storing Files
- Deleting Files
- Directories
- Custom Filesystems
-
Helpers
- Introduction
- Available Methods
- Method Listing
- Arrays & Objects
- Paths
- Strings
- URLs
- Miscellaneous
-
Mail
- Introduction
- Generating Mailables
- Writing Mailables
- Markdown Mailables
- Previewing Mailables In The Browser
- Sending Mail
- Mail & Local Development
- Events
-
Notifications
- Introduction
- Creating Notifications
- Sending Notifications
- Mail Notifications
- Markdown Mail Notifications
- Database Notifications
- Broadcast Notifications
- SMS Notifications
- Slack Notifications
- Notification Events
- Custom Channels
-
Package Development
- Introduction
- Package Discovery
- Service Providers
- Resources
- Commands
- Public Assets
- Publishing File Groups
-
Queues
- Introduction
- Creating Jobs
- Dispatching Jobs
- Running The Queue Worker
- Supervisor Configuration
- Dealing With Failed Jobs
- Job Events
-
Task Scheduling
- Introduction
- Defining Schedules
- Task Output
- Task Hooks
-
Artisan Console
-
## Database {#—database}
-
Database: Getting Started
- Introduction
- Running Raw SQL Queries
- Database Transactions
-
Database: Query Builder
- Introduction
- Retrieving Results
- Selects
- Raw Expressions
- Joins
- Unions
- Where Clauses
- Ordering, Grouping, Limit, & Offset
- Conditional Clauses
- Inserts
- Updates
- Deletes
- Pessimistic Locking
-
Database: Pagination
- Introduction
- Basic Usage
- Displaying Pagination Results
- Customizing The Pagination View
- Paginator Instance Methods
-
Database: Migrations
- Introduction
- Generating Migrations
- Migration Structure
- Running Migrations
- Tables
- Columns
- Indexes
-
Database: Seeding
- Introduction
- Writing Seeders
- Running Seeders
-
Redis
- Introduction
- Interacting With Redis
- Pub / Sub
-
Database: Getting Started
-
## Eloquent ORM {#—eloquent-orm}
-
Eloquent: Getting Started
- Introduction
- Defining Models
- Retrieving Models
- Retrieving Single Models / Aggregates
- Inserting & Updating Models
- Deleting Models
- Query Scopes
- Events
-
Eloquent: Relationships
- Introduction
- Defining Relationships
- Querying Relations
- Eager Loading
- Inserting & Updating Related Models
- Touching Parent Timestamps
-
Eloquent: Collections
- Introduction
- Available Methods
- Custom Collections
-
Eloquent: Mutators
- Introduction
- Accessors & Mutators
- Date Mutators
- Attribute Casting
-
Eloquent: API Resources
- Introduction
- Generating Resources
- Concept Overview
- Writing Resources
- Resource Responses
-
Eloquent: Serialization
- Introduction
- Serializing Models & Collections
- Hiding Attributes From JSON
- Appending Values To JSON
- Date Serialization
-
Eloquent: Getting Started
-
## Testing {#—testing}
-
Testing: Getting Started
- Introduction
- Environment
- Creating & Running Tests
-
HTTP Tests
- Introduction
- Session / Authentication
- Testing JSON APIs
- Testing File Uploads
- Available Assertions
-
Browser Tests (Laravel Dusk)
- Introduction
- Installation
- Getting Started
- Interacting With Elements
- Available Assertions
- Pages
- Components
- Continuous Integration
-
Database Testing
- Introduction
- Generating Factories
- Resetting The Database After Each Test
- Writing Factories
- Using Factories
- Available Assertions
-
Mocking
- Introduction
- Bus Fake
- Event Fake
- Mail Fake
- Notification Fake
- Queue Fake
- Storage Fake
- Facades
-
Testing: Getting Started
-
## Official Packages {#—official-packages}
-
Laravel Cashier
- Introduction
- Configuration
- Subscriptions
- Subscription Trials
- Handling Stripe Webhooks
- Handling Braintree Webhooks
- Single Charges
- Invoices
-
Envoy Task Runner
- Introduction
- Writing Tasks
- Running Tasks
- Notifications
-
Laravel Horizon
- Introduction
- Installation
- Running Horizon
- Tags
- Notifications
- Metrics
-
API Authentication (Passport)
- Introduction
- Installation
- Configuration
- Issuing Access Tokens
- Password Grant Tokens
- Implicit Grant Tokens
- Client Credentials Grant Tokens
- Personal Access Tokens
- Protecting Routes
- Token Scopes
- Consuming Your API With JavaScript
- Events
- Testing
-
Laravel Scout
- Introduction
- Installation
- Configuration
- Indexing
- Searching
- Custom Engines
-
Laravel Cashier
The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.
You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!
So, there's no reason not to click the Add to Cart button, is there?
See full terms...
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earnedover $14 millionwriting, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them