Laravel - Cấu trúc Ứng dụng

Chào mừng các bạn, những nhà phát triển tương lai! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị qua cấu trúc ứng dụng Laravel. Như một người giáo viên khoa học máy tính gần gũi, tôi ở đây để hướng dẫn bạn qua những điều cơ bản và dần dần nâng cao. Đừng lo nếu bạn mới bắt đầu học lập trình - chúng ta sẽ bắt đầu từ những điều cơ bản và tiến lên từ đó. Hãy lấy một cốc cà phê, và chúng ta cùng bắt đầu nhé!

Laravel - Application Structure

T总的图景

Trước khi chúng ta đi vào chi tiết, hãy dành một chút thời gian để hiểu tại sao cấu trúc của Laravel lại quan trọng. Hãy tưởng tượng bạn đang xây dựng một ngôi nhà. Bạn sẽ không chỉ bắt đầu đóng đinh ngẫu nhiên các tấm ván, phải không? Bạn cần một bản đồ, một kế hoạch. Đó chính xác là điều mà cấu trúc của Laravel cung cấp - một bản đồ tổ chức tốt cho ứng dụng web của bạn.

Bây giờ, hãy cùng khám phá từng thư mục chính trong Laravel:

App

Thư mục app là trái tim của ứng dụng Laravel của bạn. Đây là nơi chứa phần lớn mã lõi của ứng dụng.

Ví dụ: Tạo một Controller đơn giản

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class WelcomeController extends Controller
{
public function index()
{
return view('welcome');
}
}

Trong ví dụ này, chúng ta đã tạo một controller đơn giản có tên WelcomeController. Phương thức index trả về một view名叫 'welcome'. Điều này thường được sử dụng để hiển thị trang chủ của ứng dụng.

Bootstrap

Thư mục bootstrap chứa các tệp khởi tạo khung công tác. Nói chung, bạn không cần phải chỉnh sửa bất cứ thứ gì ở đây, nhưng tốt nhất là biết nó tồn tại.

Config

Như tên gọi của nó, thư mục config chứa tất cả các tệp cấu hình của ứng dụng.

Ví dụ: Đổi tên ứng dụng

Trong config/app.php:

'name' => env('APP_NAME', 'My Awesome Laravel App'),

Dòng này đặt tên của ứng dụng. Hàm env kiểm tra xem có giá trị APP_NAME trong tệp .env của bạn hay không. Nếu không có, nó sẽ sử dụng 'My Awesome Laravel App' làm mặc định.

Database

Thư mục database chứa các migration cơ sở dữ liệu, model factory và seed. Hãy nghĩ về migration như là 版本控制 cho schema cơ sở dữ liệu của bạn.

Ví dụ: Tạo một Migration đơn giản

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateUsersTable extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});
}

public function down()
{
Schema::dropIfExists('users');
}
}

Migration này tạo một bảng 'users' với các cột 'id', 'name', 'email' và timestamp. Phương thức down cho phép bạn đảo ngược migration nếu cần.

Public

Thư mục public chứa tệp index.php, là điểm vào cho tất cả các yêu cầu vào ứng dụng của bạn. Thư mục này cũng chứa các tài sản như hình ảnh, JavaScript và CSS.

Resources

Thư mục resources chứa các view cũng như các tài sản thô, chưa biên dịch như LESS, SASS hoặc JavaScript.

Ví dụ: Tạo một View đơn giản

Trong resources/views/welcome.blade.php:

<!DOCTYPE html>
<html>
<head>
<title>Welcome to My App</title>
</head>
<body>
<h1>Hello, {{ $name }}!</h1>
</body>
</html>

View này sử dụng bộ công tác模板 Blade của Laravel. Cú pháp {{ $name }} sẽ được thay thế bằng giá trị thực tế của $name khi view được render.

Storage

Thư mục storage chứa các template Blade đã biên dịch, phiên bản dựa trên tệp, cache tệp và các tệp khác được tạo bởi khung công tác.

Tests

Thư mục tests chứa các bài kiểm tra tự động. Laravel cung cấp một bộ công tác kiểm tra dễ sử dụng ngay từ khi cài đặt.

Ví dụ: Viết một bài kiểm tra đơn giản

<?php

namespace Tests\Feature;

use Tests\TestCase;

class ExampleTest extends TestCase
{
public function test_the_application_returns_a_successful_response()
{
$response = $this->get('/');

$response->assertStatus(200);
}
}

Bài kiểm tra này kiểm tra xem trang chủ của ứng dụng của bạn có trả về mã trạng thái HTTP thành công (200) hay không.

Vendor

Thư mục vendor chứa các phụ thuộc của Composer. Bạn không nên chỉnh sửa trực tiếp bất kỳ thứ gì trong thư mục này.

Laravel's Artisan Commands

Laravel đi kèm với một giao diện dòng lệnh mạnh mẽ叫做 Artisan. Dưới đây là bảng một số lệnh Artisan thường được sử dụng:

Lệnh Mô tả
php artisan serve Khởi động máy chủ phát triển
php artisan make:controller Tạo một controller mới
php artisan make:model Tạo một model mới
php artisan migrate Chạy các migration cơ sở dữ liệu
php artisan tinker Tương tác với ứng dụng của bạn

Nhớ rằng, những lệnh này là bạn của bạn. Chúng có thể tiết kiệm cho bạn rất nhiều thời gian và công sức!

Kết luận

Và thế là chúng ta đã hoàn thành, các bạn! Chúng ta đã có một chuyến đi nhanh qua cấu trúc ứng dụng Laravel. Nhớ rằng, như việc học bất kỳ kỹ năng mới nào, việc thành thạo Laravel đòi hỏi thời gian và sự gyak. Đừng nản lòng nếu mọi thứ không ngay lập tức hiểu được - đó là tất cả phần của quá trình học tập.

Khi chúng ta kết thúc, tôi nhớ lại một câu chuyện từ những ngày đầu tiên của tôi trong việc lập trình. Tôi đã từng花费几个小时调试一个问题,最后发现是我的文件名有一个打字错误。Bài học? Hãy chú ý đến chi tiết, nhưng cũng đừng quên bước ra và nhìn vào bức tranh lớn hơn.

Cấu trúc của Laravel có thể看起来 phức tạp ban đầu, nhưng nó được thiết kế để làm cho cuộc sống của bạn dễ dàng hơn trong dài hạn. Nó giống như việc học đi xe đạp - ban đầu có thể lung lay, nhưng một khi bạn nắm vững, bạn sẽ nhanh chóng chạy như gió.

Tiếp tục lập trình, tiếp tục học hỏi, và quan trọng nhất, hãy vui vẻ! Nhớ rằng, mỗi chuyên gia từng là một người mới bắt đầu. Bạn làm được!

Credits: Image by storyset