Init
This commit is contained in:
483
output/12.x/installation.md
Normal file
483
output/12.x/installation.md
Normal 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).
|
||||
|
||||
Reference in New Issue
Block a user