Cài đặt Laravel và khám phá cấu trúc thư mục
Giới thiệu
Giới thiệu về Laravel framework
Laravel là một framework mã nguồn mở được viết bằng ngôn ngữ lập trình PHP, được phát triển bởi Taylor Otwell vào năm 2011. Laravel được thiết kế để giúp cho việc phát triển ứng dụng web trở nên dễ dàng, nhanh chóng và hiệu quả hơn.
Laravel được thiết kế với nhiều tính năng mạnh mẽ, bao gồm hệ thống định tuyến mạnh mẽ, hệ thống ORM (Object-Relational Mapping) tuyệt vời, hệ thống template Blade, hệ thống quản lý lỗi, v.v. Tất cả các tính năng này giúp cho việc phát triển ứng dụng web trở nên dễ dàng và đơn giản hơn.
Laravel còn có cộng đồng rộng lớn và tính cộng đồng rất cao. Điều này có nghĩa là có rất nhiều người sử dụng và đóng góp vào sự phát triển của Laravel. Người dùng Laravel có thể tìm kiếm hỗ trợ từ cộng đồng thông qua các trang web diễn đàn, Github, Slack, v.v.
Laravel cũng được đánh giá cao về khả năng bảo mật và độ ổn định của nó. Laravel có một hệ thống bảo mật mạnh mẽ và được cập nhật thường xuyên để đảm bảo an toàn cho ứng dụng web.
Lý do nên sử dụng Laravel framework
- Cấu trúc code rõ ràng: Laravel có một cấu trúc code rõ ràng và có tổ chức, giúp cho các nhà phát triển dễ dàng quản lý code và tìm kiếm các thành phần cần thiết.
- Tính năng mạnh mẽ: Laravel cung cấp nhiều tính năng mạnh mẽ như hệ thống định tuyến, hệ thống ORM, hệ thống template, hệ thống quản lý lỗi, v.v. Giúp cho việc phát triển ứng dụng web nhanh chóng và đơn giản hơn.
- Tiết kiệm thời gian: Nhờ vào các tính năng mạnh mẽ và cấu trúc code rõ ràng của nó, Laravel giúp cho việc phát triển ứng dụng web trở nên nhanh chóng và tiết kiệm thời gian hơn.
- Tính bảo mật cao: Laravel có hệ thống bảo mật mạnh mẽ và được cập nhật thường xuyên để đảm bảo an toàn cho ứng dụng web.
- Cộng đồng lớn: Laravel có cộng đồng lớn và tính cộng đồng rất cao, vì vậy người dùng Laravel có thể tìm kiếm hỗ trợ từ cộng đồng thông qua các trang web diễn đàn, Github, Slack, v.v.
- Tính mở rộng cao: Laravel cho phép các nhà phát triển mở rộng tính năng của nó thông qua các gói mở rộng và plugin, giúp cho việc phát triển ứng dụng web trở nên linh hoạt và dễ dàng hơn.
Cài đặt Laravel
Yêu cầu hệ thống
Để cài đặt Laravel, bạn cần đảm bảo rằng máy tính của bạn đã cài đặt các phần mềm sau:
- PHP >= 7.3
- Composer
- Nginx hoặc Apache
Cài đặt Laravel bằng Composer
Sau khi đảm bảo các yêu cầu cài đặt, bạn có thể sử dụng Composer để cài đặt Laravel framework.
Bước 1: Mở Command Prompt hoặc Terminal và chạy lệnh sau để cài đặt Laravel bằng Composer:
composer global require laravel/installer
Bước 2: Sau khi cài đặt xong, bạn có thể sử dụng lệnh sau để tạo một dự án Laravel mới:
laravel new project-name
Trong đó, project-name
là tên của dự án mà bạn muốn tạo.
Kiểm tra phiên bản Laravel
Sau khi cài đặt xong, bạn có thể kiểm tra xem Laravel đã được cài đặt thành công hay chưa bằng cách truy cập vào URL http://localhost/project-name/public
trên trình duyệt web của bạn. Nếu mọi thứ diễn ra đúng, bạn sẽ thấy trang chào mừng của Laravel.
Tóm lại, để cài đặt Laravel framework, bạn cần đảm bảo các yêu cầu cài đặt và sử dụng Composer để cài đặt Laravel. Sau khi cài đặt xong, bạn có thể kiểm tra xem Laravel đã được cài đặt thành công hay chưa bằng cách truy cập vào URL http://localhost/project-name/public
.
Khám phá cấu trúc thư mục của Laravel
Tổng quan về cấu trúc thư mục của Laravel
Cấu trúc thư mục là một trong những yếu tố quan trọng giúp Laravel trở thành một trong những framework phổ biến nhất hiện nay. Đây là cách Laravel tổ chức các tệp tin và thư mục để giúp dễ dàng quản lý và phát triển ứng dụng.
Bên dưới là một số thư mục quan trọng trong Laravel và mô tả chức năng của chúng:
app
: Thư mục chứa các thành phần cốt lõi của ứng dụng Laravel, bao gồm các model, controllers, middleware, và các tác vụ xử lý khác.bootstrap
: Thư mục chứa các tập tin khởi động của ứng dụng Laravel, bao gồm các file tạo ứng dụng, các file tải các thư viện và các file cấu hình hệ thống.config
: Thư mục chứa các file cấu hình cho ứng dụng Laravel.database
: Thư mục chứa các file liên quan đến cơ sở dữ liệu của ứng dụng Laravel, bao gồm các migration, seeders và các file khởi tạo cơ sở dữ liệu.public
: Thư mục chứa tất cả các file mà người dùng có thể truy cập được, bao gồm các file hình ảnh, JavaScript, CSS, font chữ và các file khác.resources
: Thư mục chứa các file nguồn cấp cho ứng dụng Laravel, bao gồm các file blade template, các file ngôn ngữ và các file khác.routes
: Thư mục chứa các file định tuyến cho ứng dụng Laravel, bao gồm các file định tuyến web và API.storage
: Thư mục chứa các file tạm thời và các file lưu trữ khác của ứng dụng Laravel, bao gồm các file cache, file session và các file khác.tests
: Thư mục chứa các file kiểm thử cho ứng dụng Laravel.
Tổ chức thư mục của Laravel giúp cho các nhà phát triển có thể dễ dàng tìm kiếm các tập tin và chức năng cần thiết để phát triển và bảo trì ứng dụng. Ngoài ra, Laravel cũng có thể được mở rộng bằng cách thêm các thư mục và file khác trong các thư mục này để phù hợp với nhu cầu cụ thể của dự án.
Giải thích về các thư mục và tệp tin quan trọng
- Thư mục
app
: chứa các thành phần cốt lõi của ứng dụng Laravel, bao gồm các model, controllers, middleware, và các tác vụ xử lý khác. - Thư mục
bootstrap
: chứa các tập tin khởi động của ứng dụng Laravel, bao gồm các file tạo ứng dụng, các file tải các thư viện và các file cấu hình hệ thống. - Thư mục
config
: chứa các file cấu hình cho ứng dụng Laravel, bao gồm cấu hình cho các tác vụ xử lý hàng đợi, tài khoản email, cấu hình ứng dụng và các file khác. - Thư mục
database
: chứa các file liên quan đến cơ sở dữ liệu của ứng dụng Laravel, bao gồm các migration, seeders và các file khởi tạo cơ sở dữ liệu. - Thư mục
public
: chứa tất cả các file mà người dùng có thể truy cập được, bao gồm các file hình ảnh, JavaScript, CSS, font chữ và các file khác. - Thư mục
resources
: chứa các file nguồn cấp cho ứng dụng Laravel, bao gồm các file blade template, các file ngôn ngữ và các file khác. - Thư mục
routes
: chứa các file định tuyến cho ứng dụng Laravel, bao gồm các file định tuyến web và API. - Thư mục
storage
: chứa các file tạm thời và các file lưu trữ khác của ứng dụng Laravel, bao gồm các file cache, file session và các file khác. - Thư mục
tests
: chứa các file kiểm thử cho ứng dụng Laravel.
Tìm hiểu về các file configuration và environment variables
Các file cấu hình trong Laravel giúp bạn quản lý các cài đặt của ứng dụng, bao gồm cấu hình cho cơ sở dữ liệu, email, đường dẫn và các cài đặt khác. Các file cấu hình này được đặt trong thư mục config.
Trong khi đó, các biến môi trường (environment variables) là các giá trị được đặt trong tệp tin .env
để giúp bạn quản lý các cài đặt của môi trường phát triển và triển khai của ứng dụng. Các biến môi trường này sẽ được sử dụng trong các file cấu hình và mã nguồn của ứng dụng.
Ví dụ, trong tệp tin config/database.php, bạn có thể cấu hình kết nối đến cơ sở dữ liệu của ứng dụng bằng cách sử dụng các biến môi trường như sau:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
...
],
Trong ví dụ trên, các giá trị cho kết nối đến cơ sở dữ liệu được đặt trong các biến môi trường như DB_HOST
, DB_PORT
, DB_DATABASE
, DB_USERNAME
và DB_PASSWORD
. Nếu bạn muốn thay đổi giá trị cho các biến này, bạn có thể đặt chúng trong tệp tin .env
của mình.
Ví dụ, nếu bạn muốn thay đổi giá trị của biến DB_HOST
thành localhost, bạn có thể thêm dòng sau vào tệp tin .env
của mình:
DB_HOST=localhost
Tương tự, bạn có thể sử dụng các biến môi trường để cấu hình các thông số khác của ứng dụng, chẳng hạn như đường dẫn đến tệp tin logs, địa chỉ email của ứng dụng và các cài đặt khác.
Trong bài viết này, chúng tôi đã giới thiệu về cấu trúc thư mục của Laravel và các tệp tin quan trọng trong ứng dụng Laravel. Chúng tôi cũng đã trình bày về cách sử dụng các file cấu hình và biến môi trường để quản lý các cài đặt của ứng dụng. Việc hiểu về cấu trúc và các file quan trọng trong Laravel là rất quan trọng để có thể phát triển ứng dụng Laravel hiệu quả.
Tạo project Laravel mới
Sử dụng lệnh Laravel để tạo project mới
Để tạo project Laravel mới, bạn có thể sử dụng lệnh laravel new trên terminal như sau:
laravel new my-project
Trong đó, my-project
là tên project mà bạn muốn đặt. Lệnh này sẽ tải về và cài đặt Laravel và các dependencies của nó vào thư mục my-project.
Sau khi cài đặt hoàn tất, bạn có thể mở project bằng trình soạn thảo của mình và bắt đầu phát triển ứng dụng.
Cấu hình file .env
Sau khi tạo project mới, bạn cần cấu hình tệp tin .env
để kết nối đến cơ sở dữ liệu. Tệp tin .env
là tệp tin chứa các biến môi trường để cấu hình ứng dụng Laravel. Bạn có thể sao chép tệp tin .env.example
và đổi tên thành .env
để sử dụng.
Để kết nối đến cơ sở dữ liệu, bạn cần chỉnh sửa các biến sau trong tệp tin .env
:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_username
DB_PASSWORD=your_database_password
Bạn cần thay đổi các giá trị cho các biến DB_DATABASE, DB_USERNAME và DB_PASSWORD để phù hợp với cấu hình cơ sở dữ liệu của bạn.
Khởi chạy server và kiểm tra kết quả
Sau khi cấu hình xong tệp tin .env, bạn có thể khởi động server bằng lệnh:
php artisan serve
Sau khi server được khởi động, bạn có thể truy cập vào địa chỉ http://localhost:8000
để kiểm tra kết quả. Bạn sẽ thấy trang chào mừng của Laravel được hiển thị.
Nếu bạn gặp phải lỗi khi khởi động server, bạn có thể kiểm tra tệp tin config/app.php
để đảm bảo rằng cấu hình ứng dụng của bạn được đặt đúng. Bạn cũng có thể kiểm tra các thông báo lỗi được hiển thị trên terminal để xem chi tiết hơn về lỗi.
Các lệnh cơ bản của Laravel
Sử dụng lệnh Artisan để tạo các controller, model, migration, v.v.
Laravel framework đi kèm với một công cụ gọi là Artisan, cho phép bạn tạo ra các thành phần quan trọng trong ứng dụng Laravel một cách dễ dàng.
Ví dụ, để tạo một controller mới, bạn có thể sử dụng lệnh sau:
php artisan make:controller UserController
Lệnh này sẽ tạo một file UserController trong thư mục app/Http/Controllers
.
Tương tự, để tạo một model mới, bạn có thể sử dụng lệnh sau:
php artisan make:model User
Lệnh này sẽ tạo một file User.php trong thư mục app/Models
.
Ngoài ra, Artisan cũng hỗ trợ tạo các migration, seeders, request, test cases, v.v. với các lệnh tương ứng.
Tìm hiểu về cấu trúc của các file tạo bởi lệnh Artisan
Khi sử dụng lệnh Artisan để tạo các thành phần trong ứng dụng Laravel, các file được tạo sẽ tuân theo một cấu trúc chung.
Ví dụ, nếu bạn sử dụng lệnh make:model
User, Laravel sẽ tạo một file User.php
trong thư mục app/Models
. File này sẽ bao gồm một class User kế thừa từ lớp Model, vì Model là một lớp trừu tượng trong Laravel để xử lý dữ liệu.
Tương tự, khi tạo một controller mới bằng lệnh make:controller UserController
, Laravel sẽ tạo một file UserController.php
trong thư mục app/Http/Controllers
. File này sẽ bao gồm một class UserController
với các phương thức xử lý các yêu cầu HTTP.
Các file migration cũng có một cấu trúc tương tự, bao gồm một class migration kế thừa từ lớp Migration, với phương thức up
để tạo bảng và phương thức down
để xóa bảng.
Sử dụng lệnh tạo middleware và service provider
Laravel cũng cho phép bạn tạo middleware và service provider mới bằng các lệnh tương ứng.
Ví dụ, để tạo một middleware mới, bạn có thể sử dụng lệnh sau:
php artisan make:middleware AuthMiddleware
Lệnh php artisan make:middleware Authenticate
được sử dụng để tạo ra một middleware mới trong ứng dụng Laravel. Middleware là một trong những thành phần quan trọng của mô hình Middleware trong Laravel, cho phép xử lý các request trước khi chúng được chuyển đến controller.
Trong trường hợp này, middleware được gọi là Authenticate, tên này có thể thay đổi tùy theo mục đích sử dụng. Khi chạy lệnh này, Laravel sẽ tạo ra một file middleware mới trong thư mục app/Http/Middleware
. File này sẽ chứa class Authenticate kế thừa từ Illuminate\Auth\Middleware\Authenticate
, và phương thức handle()
để xử lý request được gửi đến.
Middleware Authenticate có thể được sử dụng để kiểm tra xem người dùng đã đăng nhập hay chưa, nếu chưa thì middleware có thể chuyển hướng người dùng đến trang đăng nhập hoặc trang khác tùy chọn.
Tạo service provider
Service provider là một khái niệm quan trọng trong Laravel, cho phép chúng ta đăng ký các service và binding giá trị trong container của ứng dụng. Service provider cũng cho phép chúng ta đăng ký các command line interface (CLI) của ứng dụng.
Để tạo một service provider mới, chúng ta sử dụng lệnh Artisan như sau:
php artisan make:provider MyServiceProvider
Trong đó, MyServiceProvider
là tên của service provider mới. Sau khi chạy lệnh này, Laravel sẽ tạo ra một file mới tên MyServiceProvider.php
trong thư mục app/Providers
. Nội dung của file này sẽ giống như sau:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class MyServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
}
}
Trong hàm register, chúng ta có thể đăng ký các service và binding giá trị trong container của ứng dụng. Trong hàm boot, chúng ta có thể đăng ký các event, middleware và các tác vụ khác.
Sau khi tạo service provider mới, chúng ta cần phải đăng ký nó để Laravel biết được rằng nó đã được thêm vào ứng dụng.
Để đăng ký một service provider, chúng ta sẽ mở file config/app.php
và tìm đến mảng providers
. Chúng ta sẽ thêm tên class của service provider vào mảng này.
Ví dụ, nếu chúng ta tạo một service provider
mới tên là MyServiceProvider
, chúng ta sẽ thêm dòng sau vào mảng providers:
'providers' => [
// ...
App\Providers\MyServiceProvider::class,
],
Lưu ý rằng Laravel sẽ tự động load các service provider này vào ứng dụng. Bạn không cần phải import service provider vào các file khác.
Ngoài ra, nếu bạn muốn đăng ký các alias cho các class, bạn có thể sử dụng phương thức aliases
trong file config/app.php
.
'aliases' => [
// ...
'CustomClass' => App\CustomClass::class,
],
Sau đó, bạn có thể sử dụng alias CustomClass để trỏ tới class App\CustomClass trong toàn bộ ứng dụng của mình.
Kết luận
Tổng kết lại những gì đã học được
Trong bài viết này, chúng ta đã học được những điều sau về Laravel framework:
- Giới thiệu về Laravel và lý do nên sử dụng Laravel framework
- Cách cài đặt Laravel framework
- Khám phá cấu trúc thư mục của Laravel, bao gồm giải thích các thư mục và tệp tin quan trọng
- Cấu hình file .env và khởi chạy server để kiểm tra kết quả
- Sử dụng lệnh Artisan để tạo các controller, model, migration, v.v.
- Tìm hiểu về cấu trúc của các file được tạo bởi lệnh Artisan
- Sử dụng lệnh tạo middleware và service provider
Đề xuất các tài liệu học thêm về Laravel.
- Laravel documentation: https://laravel.com/docs/
- Laracasts: https://laracasts.com/
- Laravel News: https://laravel-news.com/
- Laravel.io community: https://laravel.io/
- The PHP Practitioner: Build a Laravel Application course on Laracasts: https://laracasts.com/series/php-for-beginners
- Laravel 8 From Scratch course on Laracasts: https://laracasts.com/series/laravel-8-from-scratch
Chúc bạn học tập hiệu quả với Laravel!