## 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
- ## 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
- ## 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
- ## 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
- ## 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
- ## 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
- ## 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
- 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
- ## 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
- ## 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
- ## 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
- ## 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