This commit is contained in:
2025-09-02 15:19:23 +02:00
commit 9b2b03b2ef
108 changed files with 166712 additions and 0 deletions

483
output/12.x/installation.md Normal file
View File

@@ -0,0 +1,483 @@
# Installation
* Meet Laravel
* Why Laravel?
* Creating a Laravel Application
* Installing PHP and the Laravel Installer
* Creating an Application
* Initial Configuration
* Environment Based Configuration
* Databases and Migrations
* Directory Configuration
* Installation Using Herd
* Herd on macOS
* Herd on Windows
* IDE Support
* Laravel and AI
* Installing Laravel Boost
* Next Steps
* Laravel the Full Stack Framework
* Laravel the API Backend
## Meet Laravel
Laravel is a web application framework with expressive, elegant syntax. A web
framework provides a structure and starting point for creating your
application, allowing you to focus on creating something amazing while we
sweat the details.
Laravel strives to provide an amazing developer experience while providing
powerful features such as thorough dependency injection, an expressive
database abstraction layer, queues and scheduled jobs, unit and integration
testing, and more.
Whether you are new to PHP web frameworks or have years of experience, Laravel
is a framework that can grow with you. We'll help you take your first steps as
a web developer or give you a boost as you take your expertise to the next
level. We can't wait to see what you build.
### Why Laravel?
There are a variety of tools and frameworks available to you when building a
web application. However, we believe Laravel is the best choice for building
modern, full-stack web applications.
#### A Progressive Framework
We like to call Laravel a "progressive" framework. By that, we mean that
Laravel grows with you. If you're just taking your first steps into web
development, Laravel's vast library of documentation, guides, and [video
tutorials](https://laracasts.com) will help you learn the ropes without
becoming overwhelmed.
If you're a senior developer, Laravel gives you robust tools for [dependency
injection](/docs/12.x/container), [unit testing](/docs/12.x/testing),
[queues](/docs/12.x/queues), [real-time events](/docs/12.x/broadcasting), and
more. Laravel is fine-tuned for building professional web applications and
ready to handle enterprise work loads.
#### A Scalable Framework
Laravel is incredibly scalable. Thanks to the scaling-friendly nature of PHP
and Laravel's built-in support for fast, distributed cache systems like Redis,
horizontal scaling with Laravel is a breeze. In fact, Laravel applications
have been easily scaled to handle hundreds of millions of requests per month.
Need extreme scaling? Platforms like [Laravel
Cloud](https://cloud.laravel.com) allow you to run your Laravel application at
nearly limitless scale.
#### A Community Framework
Laravel combines the best packages in the PHP ecosystem to offer the most
robust and developer friendly framework available. In addition, thousands of
talented developers from around the world have [contributed to the
framework](https://github.com/laravel/framework). Who knows, maybe you'll even
become a Laravel contributor.
## Creating a Laravel Application
### Installing PHP and the Laravel Installer
Before creating your first Laravel application, make sure that your local
machine has [PHP](https://php.net), [Composer](https://getcomposer.org), and
[the Laravel installer](https://github.com/laravel/installer) installed. In
addition, you should install either [Node and NPM](https://nodejs.org) or
[Bun](https://bun.sh/) so that you can compile your application's frontend
assets.
If you don't have PHP and Composer installed on your local machine, the
following commands will install PHP, Composer, and the Laravel installer on
macOS, Windows, or Linux:
macOS Windows PowerShell Linux
1/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.4)"
/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.4)"
1# Run as administrator...
2Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://php.new/install/windows/8.4'))
# Run as administrator...
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://php.new/install/windows/8.4'))
1/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.4)"
/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.4)"
After running one of the commands above, you should restart your terminal
session. To update PHP, Composer, and the Laravel installer after installing
them via `php.new`, you can re-run the command in your terminal.
If you already have PHP and Composer installed, you may install the Laravel
installer via Composer:
1composer global require laravel/installer
composer global require laravel/installer
For a fully-featured, graphical PHP installation and management experience,
check out Laravel Herd.
### Creating an Application
After you have installed PHP, Composer, and the Laravel installer, you're
ready to create a new Laravel application. The Laravel installer will prompt
you to select your preferred testing framework, database, and starter kit:
1laravel new example-app
laravel new example-app
Once the application has been created, you can start Laravel's local
development server, queue worker, and Vite development server using the `dev`
Composer script:
1cd example-app
2npm install && npm run build
3composer run dev
cd example-app
npm install && npm run build
composer run dev
Once you have started the development server, your application will be
accessible in your web browser at <http://localhost:8000>. Next, you're ready
to start taking your next steps into the Laravel ecosystem. Of course, you may
also want to configure a database.
If you would like a head start when developing your Laravel application,
consider using one of our [starter kits](/docs/12.x/starter-kits). Laravel's
starter kits provide backend and frontend authentication scaffolding for your
new Laravel application.
## Initial Configuration
All of the configuration files for the Laravel framework are stored in the
`config` directory. Each option is documented, so feel free to look through
the files and get familiar with the options available to you.
Laravel needs almost no additional configuration out of the box. You are free
to get started developing! However, you may wish to review the
`config/app.php` file and its documentation. It contains several options such
as `url` and `locale` that you may wish to change according to your
application.
### Environment Based Configuration
Since many of Laravel's configuration option values may vary depending on
whether your application is running on your local machine or on a production
web server, many important configuration values are defined using the `.env`
file that exists at the root of your application.
Your `.env` file should not be committed to your application's source control,
since each developer / server using your application could require a different
environment configuration. Furthermore, this would be a security risk in the
event an intruder gains access to your source control repository, since any
sensitive credentials would be exposed.
For more information about the `.env` file and environment based
configuration, check out the full [configuration
documentation](/docs/12.x/configuration#environment-configuration).
### Databases and Migrations
Now that you have created your Laravel application, you probably want to store
some data in a database. By default, your application's `.env` configuration
file specifies that Laravel will be interacting with an SQLite database.
During the creation of the application, Laravel created a
`database/database.sqlite` file for you, and ran the necessary migrations to
create the application's database tables.
If you prefer to use another database driver such as MySQL or PostgreSQL, you
can update your `.env` configuration file to use the appropriate database. For
example, if you wish to use MySQL, update your `.env` configuration file's
`DB_*` variables like so:
1DB_CONNECTION=mysql
2DB_HOST=127.0.0.1
3DB_PORT=3306
4DB_DATABASE=laravel
5DB_USERNAME=root
6DB_PASSWORD=
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
If you choose to use a database other than SQLite, you will need to create the
database and run your application's [database
migrations](/docs/12.x/migrations):
1php artisan migrate
php artisan migrate
If you are developing on macOS or Windows and need to install MySQL,
PostgreSQL, or Redis locally, consider using [Herd
Pro](https://herd.laravel.com/#plans) or [DBngin](https://dbngin.com/).
### Directory Configuration
Laravel should always be served out of the root of the "web directory"
configured for your web server. You should not attempt to serve a Laravel
application out of a subdirectory of the "web directory". Attempting to do so
could expose sensitive files present within your application.
## Installation Using Herd
[Laravel Herd](https://herd.laravel.com) is a blazing fast, native Laravel and
PHP development environment for macOS and Windows. Herd includes everything
you need to get started with Laravel development, including PHP and Nginx.
Once you install Herd, you're ready to start developing with Laravel. Herd
includes command line tools for `php`, `composer`, `laravel`, `expose`,
`node`, `npm`, and `nvm`.
[Herd Pro](https://herd.laravel.com/#plans) augments Herd with additional
powerful features, such as the ability to create and manage local MySQL,
Postgres, and Redis databases, as well as local mail viewing and log
monitoring.
### Herd on macOS
If you develop on macOS, you can download the Herd installer from the [Herd
website](https://herd.laravel.com). The installer automatically downloads the
latest version of PHP and configures your Mac to always run
[Nginx](https://www.nginx.com/) in the background.
Herd for macOS uses [dnsmasq](https://en.wikipedia.org/wiki/Dnsmasq) to
support "parked" directories. Any Laravel application in a parked directory
will automatically be served by Herd. By default, Herd creates a parked
directory at `~/Herd` and you can access any Laravel application in this
directory on the `.test` domain using its directory name.
After installing Herd, the fastest way to create a new Laravel application is
using the Laravel CLI, which is bundled with Herd:
1cd ~/Herd
2laravel new my-app
3cd my-app
4herd open
cd ~/Herd
laravel new my-app
cd my-app
herd open
Of course, you can always manage your parked directories and other PHP
settings via Herd's UI, which can be opened from the Herd menu in your system
tray.
You can learn more about Herd by checking out the [Herd
documentation](https://herd.laravel.com/docs).
### Herd on Windows
You can download the Windows installer for Herd on the [Herd
website](https://herd.laravel.com/windows). After the installation finishes,
you can start Herd to complete the onboarding process and access the Herd UI
for the first time.
The Herd UI is accessible by left-clicking on Herd's system tray icon. A
right-click opens the quick menu with access to all tools that you need on a
daily basis.
During installation, Herd creates a "parked" directory in your home directory
at `%USERPROFILE%\Herd`. Any Laravel application in a parked directory will
automatically be served by Herd, and you can access any Laravel application in
this directory on the `.test` domain using its directory name.
After installing Herd, the fastest way to create a new Laravel application is
using the Laravel CLI, which is bundled with Herd. To get started, open
Powershell and run the following commands:
1cd ~\Herd
2laravel new my-app
3cd my-app
4herd open
cd ~\Herd
laravel new my-app
cd my-app
herd open
You can learn more about Herd by checking out the [Herd documentation for
Windows](https://herd.laravel.com/docs/windows).
## IDE Support
You are free to use any code editor you wish when developing Laravel
applications. If you're looking for lightweight and extensible editors, [VS
Code](https://code.visualstudio.com) or [Cursor](https://cursor.com) combined
with the official [Laravel VS Code
Extension](https://marketplace.visualstudio.com/items?itemName=laravel.vscode-
laravel) offers excellent Laravel support with features like syntax
highlighting, snippets, artisan command integration, and smart autocompletion
for Eloquent models, routes, middleware, assets, config, and Inertia.js.
[PhpStorm](https://www.jetbrains.com/phpstorm/laravel/) by JetBrains combined
with the [Laravel Idea plugin](https://laravel-idea.com/) provides extensive
support for Laravel and its ecosystem including Laravel Pint, Larastan, and
Pest. The framework support covers Blade templates, smart autocompletion for
Eloquent models, routes, views, translations, and components, along with
powerful code generation and navigation across Laravel projects.
For those seeking a cloud-based development experience, [Firebase
Studio](https://firebase.studio/) provides instant access to building with
Laravel directly in your browser. With zero setup required, Firebase Studio
makes it easy to start building Laravel applications from any device.
## Laravel and AI
[Laravel Boost](https://github.com/laravel/boost) is a powerful tool that
bridges the gap between AI coding agents and Laravel applications. Boost
provides AI agents with Laravel-specific context, tools, and guidelines so
they can generate more accurate, version-specific code that follows Laravel
conventions.
When you install Boost in your Laravel application, AI agents gain access to
over 15 specialized tools including the ability to know which packages you are
using, query your database, search the Laravel documentation, read browser
logs, generate tests, and execute code via Tinker.
In addition, Boost gives AI agents access to over 17,000 pieces of vectorized
Laravel ecosystem documentation, specific to your installed package versions.
This means agents can provide guidance targeted to the exact versions your
project uses.
Boost also includes Laravel-maintained AI guidelines that help agents to
follow framework conventions, write appropriate tests, and avoid common
pitfalls when generating Laravel code.
### Installing Laravel Boost
Boost can be installed in Laravel 10, 11, and 12 applications running PHP 8.1
or higher. To get started, install Boost as a development dependency:
1composer require laravel/boost --dev
composer require laravel/boost --dev
Once installed, run the interactive installer:
1php artisan boost:install
php artisan boost:install
The installer will auto-detect your IDE and AI agents, allowing you to opt
into the features that make sense for your project. Boost respects existing
project conventions and doesn't force opinionated style rules by default.
To learn more about Boost, check out the [Laravel Boost repository on
GitHub](https://github.com/laravel/boost).
## Next Steps
Now that you have created your Laravel application, you may be wondering what
to learn next. First, we strongly recommend becoming familiar with how Laravel
works by reading the following documentation:
* [Request Lifecycle](/docs/12.x/lifecycle)
* [Configuration](/docs/12.x/configuration)
* [Directory Structure](/docs/12.x/structure)
* [Frontend](/docs/12.x/frontend)
* [Service Container](/docs/12.x/container)
* [Facades](/docs/12.x/facades)
How you want to use Laravel will also dictate the next steps on your journey.
There are a variety of ways to use Laravel, and we'll explore two primary use
cases for the framework below.
### Laravel the Full Stack Framework
Laravel may serve as a full stack framework. By "full stack" framework we mean
that you are going to use Laravel to route requests to your application and
render your frontend via [Blade templates](/docs/12.x/blade) or a single-page
application hybrid technology like [Inertia](https://inertiajs.com). This is
the most common way to use the Laravel framework, and, in our opinion, the
most productive way to use Laravel.
If this is how you plan to use Laravel, you may want to check out our
documentation on [frontend development](/docs/12.x/frontend),
[routing](/docs/12.x/routing), [views](/docs/12.x/views), or the [Eloquent
ORM](/docs/12.x/eloquent). In addition, you might be interested in learning
about community packages like [Livewire](https://livewire.laravel.com) and
[Inertia](https://inertiajs.com). These packages allow you to use Laravel as a
full-stack framework while enjoying many of the UI benefits provided by
single-page JavaScript applications.
If you are using Laravel as a full stack framework, we also strongly encourage
you to learn how to compile your application's CSS and JavaScript using
[Vite](/docs/12.x/vite).
If you want to get a head start building your application, check out one of
our official [application starter kits](/docs/12.x/starter-kits).
### Laravel the API Backend
Laravel may also serve as an API backend to a JavaScript single-page
application or mobile application. For example, you might use Laravel as an
API backend for your [Next.js](https://nextjs.org) application. In this
context, you may use Laravel to provide [authentication](/docs/12.x/sanctum)
and data storage / retrieval for your application, while also taking advantage
of Laravel's powerful services such as queues, emails, notifications, and
more.
If this is how you plan to use Laravel, you may want to check out our
documentation on [routing](/docs/12.x/routing), [Laravel
Sanctum](/docs/12.x/sanctum), and the [Eloquent ORM](/docs/12.x/eloquent).