Laravel is a robust PHP framework known for its elegant syntax and comprehensive features. It simplifies the development process and promotes best practices, making it a popular choice among PHP developers.
In this Answer, we'll explore the basics of using the Laravel framework and demonstrate how to set up a simple application.
Note: Before starting, make sure that PHP is installed on the system.
Laravel utilizes Composer, a dependency management tool for PHP. Visit the official Composer website and follow the instructions to install it.
Once Composer is installed, open the terminal or command prompt and run the following command to install Laravel:
composer global require laravel/installer
This command installs the Laravel installer globally, allowing to create new Laravel projects from anywhere on the machine.
Note: If we do not specify any version during installation, the composer will install the latest stable version of Laravel available at the time.
To install a specific version of Laravel using Composer, we can use the following command.
composer global require "laravel/installer:{version}"
Replace {version} with the specific version number to install. For example, if we want to install the Laravel installer version 4.0.0, we would use the following command.
composer global require "laravel/installer:4.0.0"
Note: If we want to run Laravel commands globally without specifying the full path, we can add the Composer's global bin directory to our system's PATH. This will allow us to run Laravel commands from anywhere on your system. Otherwise, we can encounter the error: laravel: command not found.
First, check the global Composer bin directory by running the following command.
composer global config bin-dir --absolute
This command will display the absolute path to the global Composer bin directory. Once we have the path, we must add it to our system's PATH environment variable.
Now, we have to add the following line at the end of the ~/.bashrc (for Linux) or ~/.bash_profile (for macOS). Replace /path/to/composer/global/bin with the absolute path obtained from the previous command.
export PATH="$PATH:/path/to/composer/global/bin"
Open the terminal and run the following command to append the path in the file.
echo "export PATH="$PATH:/path/to/composer/global/bin"" >> ~/.bashrc
After making changes to the ~/.bashrc file, we need to reload it to apply the changes. Run the following command to do so.
source ~/.bashrc
Open the System Properties dialog.
Click on "Advanced system settings" on the left.
In the "System Properties" window, click the "Environment Variables" button.
Under the "System variables" section, find the "Path" variable and click "Edit."
Add a new entry with the absolute path to the Composer bin directory (e.g., C:\Users\YourUserName\AppData\Roaming\Composer\vendor\bin).
Click "OK" to save the changes.
Once the installation is complete, we must navigate to the directory where we want to create our Laravel project. Run the following command to generate a new Laravel project.
laravel new project-name
Replace project-name with the desired name for the project. This command will download the Laravel framework and set up a new project in the specified directory.
Here's an interactive terminal to run the installation commands and get hands-on practice.
Laravel follows a well-defined project structure, which helps organize the code and separates different aspects of the application. Let's explore the important directories and files within a Laravel project:
app: This directory contains the application's core code, including controllers, models, and other business logic.
bootstrap: It holds the files responsible for bootstrapping and initializing the Laravel framework.
config: This directory contains various configuration files for the application, such as database settings, caching, and services.
database: Here, we'll find database-related files, including migrations, seeds, and the database connection configuration.
public: The public directory serves as the document root for the application and contains the entry point index.php. Publicly accessible files like assets, CSS, and JavaScript should be placed here.
resources: This directory contains the application's views, language files, and raw assets like Sass or JavaScript source files.
routes: Here, we define the routes for the application. The web.php file handles web routes, while api.php handles API routes.
storage: Laravel uses this directory to store various files, such as logs, cache, and session data.
tests: The tests directory contains automated tests for the application.
vendor: Laravel dependencies and packages are installed in this directory.
After creating the project, navigate to the project directory using cd project-name. Next, open the .env file in the project root directory. Here, we can configure our application's environment variables, such as the database connection details. Update the necessary variables based on the development environment.
Laravel provides a powerful routing system to define URLs that the application responds to. Open the routes/web.php file, and we'll find an example route:
Route::get('/', function () {return view('welcome');});
In this example, the root URL / is mapped to a closure function that returns the welcome view. We can define various routes based on the application's needs, including routes with dynamic parameters, named routes, and route groups.
Views in Laravel are responsible for rendering the user interface. Laravel's default view directory is resources/views. There is a file welcome.blade.php in the resources/views directory. By default, it contains the code for the Laravel webpage. We can modify its content to create the view we want.
Here's an example view.
<!DOCTYPE html><html><head><title>Welcome</title></head><body><h1>Welcome to Educative!</h1></body></html>
To run the Laravel application, use the following command.
php artisan serve
This command starts the built-in development server provided by Laravel.
Following is an executable application containing the Laravel project.
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:b7+51jaHTkygv1leS/H9RI9zhkUD5DJXrNF7QnTnt9Y=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=project_name
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DRIVER=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
MEMCACHED_HOST=127.0.0.1
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
In this Answer, we covered the basics of using the Laravel framework in PHP. We discussed the installation process and the basic project structure. By leveraging Laravel's features and following its conventions, we can develop scalable and maintainable PHP applications.
Free Resources