Trong hướng dẫn Laravel này, chúng ta sẽ học cách cài đặt laravel và cách tạo ứng dụng đầu tiên của bạn. Giờ đây, bạn có thể học laravel một cách dễ dàng mà không cần phải xem loạt video về laravel hoặc video hướng dẫn về laravel. Hướng dẫn về laravel này sẽ giải thích tất cả các khái niệm cần thiết bằng ngôn ngữ dễ hiểu để bạn học laravel dễ dàng và hiểu nó hơn.
Giới thiệu
Laravel là một khung công tác web PHP miễn phí , mã nguồn mở , được tạo bởi Taylor Otwell và dành cho việc phát triển các ứng dụng web theo mô hình kiến trúc model – view – controller (MVC) và dựa trên Symfony . Một số tính năng của Laravel là hệ thống đóng gói mô-đun với trình quản lý phụ thuộc chuyên dụng, các cách khác nhau để truy cập cơ sở dữ liệu quan hệ , các tiện ích hỗ trợ triển khai và bảo trì ứng dụng và định hướng của nó đối với đường cú pháp .
Các mã nguồn của Laravel được lưu trữ trên GitHub và cấp phép theo các điều khoản của MIT License .
Ban đầu, sẽ có một chút khó khăn trong việc học tập đặc biệt nếu bạn là người mới bắt đầu và không có kinh nghiệm với bất kỳ loại khung web nào. Nhưng tin tôi đi, một khi bạn cuốn theo nó, bạn sẽ không chỉ yêu, mà bạn sẽ nghiện nó. Laravel hướng đến sự sáng tạo trong phát triển. Nó sử dụng từ ‘Web Artisan’ để chỉ ra sự sáng tạo ẩn bên trong trái tim của nhà phát triển. Kết quả -> Ứng dụng hiệu quả với ít dòng hơn và mã được thiết kế tốt.
Để giúp bạn học dễ dàng hơn, tôi đã viết hướng dẫn laravel này với lưu ý đến đối tượng là người mới bắt đầu. Vì vậy, bạn sẽ thấy dễ dàng khi làm theo hướng dẫn này của laravel để học.
Những gì bạn nên biết trước khi xem bài hướng dẫn Laravel này?
- HTML / CSS
- Hiểu biết cơ bản về PHP
- Intermediate PHP – Đây là loại tùy chọn nhưng nếu bạn có thời gian, hãy tìm hiểu một số khái niệm trung gian như PHP OOP , trừu tượng, v.v.
- Hiểu biết cơ bản về MVC Framework
- Tính kiên trì – Mặc dù học Laravel rất dễ dàng, nhưng nó sẽ kiểm tra sự kiên nhẫn của bạn ở nhiều khoảng thời gian khác nhau. Ít nhất thì tôi cũng gặp phải một số trở ngại vì tôi biết PHP nhưng tôi không có kiến thức về các framework. Ngay cả khi đang học framework hoặc hoàn thành thành công các dự án, tôi vẫn gặp sự nhầm lẫn trong các khái niệm cơ bản cơ bản của MVC Framework. Nhưng tôi không bỏ cuộc.
- Niềm đam mê – Phát triển web của Thôi là niềm vui! Ít nhất thì Laravel đã làm cho nó thú vị. Tốt nhất hãy tận hưởng hành trình học tập.
Cài đặt và cấu hình
Laravel cung cấp nhiều cách khác nhau để cài đặt trong windows hoặc mac. Cách tốt nhất và dễ nhất để cài đặt Laravel là thông qua Composer. Composer là trình quản lý phụ thuộc cho PHP mà bạn có thể cài đặt trên máy chủ web của mình.
Điều kiện tiên quyết để cài đặt Laravel 8
Trước khi cài đặt Laravel trên nền tảng cục bộ (Localhost), bạn cần cài đặt các chương trình sau:
- Máy chủ Web – Apache hoặc nGinx
- > = PHP 7.3
- Một số phần mở rộng PHP có thể được cài đặt sẵn
- MySQL
- Composer
- Một IDE sẽ thực sự hữu ích cho việc phát triển Laravel. Tôi đề xuất VS Code hoặc Atom. Cả hai đều được sử dụng miễn phí.
Các bước cài đặt Laravel trong Localhost của bạn: (Mình sẽ hướng dẫn phần này trong bài viết tiếp theo)
Khám phá cấu trúc thư mục
Các ứng dụng Laravel tuân theo mô hình thiết kế kiến trúc Model-View-Controller .
Nguồn – SelfTaughtCoders.com
- Models đại diện cho các thực thể trong cơ sở dữ liệu và giúp bạn truy vấn cơ sở dữ liệu và trả về dữ liệu
- Views là các trang sẽ được hiển thị khi truy cập ứng dụng. View Component được sử dụng cho Giao diện Người dùng của ứng dụng.
- Controllers xử lý các yêu cầu của người dùng, lấy dữ liệu cần thiết từ các mô hình và chuyển chúng đến Chế độ xem. Bộ điều khiển hoạt động như một trung gian giữa các Thành phần Mô hình và Chế độ xem để xử lý logic nghiệp vụ và yêu cầu gửi đến.
Khi bạn cài đặt trình composer và tạo ứng dụng web Laravel đầu tiên của mình, bạn có thể nhận thấy thư mục ứng dụng có các tệp và thư mục khác nhau. Tôi biết nếu bạn là người mới bắt đầu, bạn có thể có rất nhiều câu hỏi về những thư mục này để làm gì, v.v. Nên hãy xem phần tiếp theo thoi nào 🙂 .
Cấu trúc thư mục
- app (core code): Hầu như tất cả các lớp (class) cho project sẽ nằm ở đây
- bootstrap:
- app.php làm việc như một bootstrap của ứng dụng
- cache dùng để chứa các file bộ nhớ config, route, services… cho việc tối ưu hiệu năng
- config: Thư mục này chứa tất cả file config ứng dụng
- database: chứa các file làm việc với cơ sở dữ liệu (database) của ứng dụng
- factories: có chức năng tạo dữ liệu ảo database, cho việc testing
- migrations: chứa các file dùng để khởi tạo các bảng (table) trong database
- seeds: khôi phục lại database theo những gì đã thiết lập sẵn trước đó nhưng có thể sẽ mất đi dữ liệu đã có hoặc thay thế bằng dữ liệu mặc định được khai báo trong các file seeder.
- public: chứa file index.php, file này đảm nhận vai trò như một đích đến của các request và autoload các lớp. Ngoài ra nó còn chứa các tài nguyên mà trình duyệt (browser) có thể truy cập như JS, CSS, hình ảnh…
- resources: chứa các tài nguyên thô chưa được biên dịch như view, LESS, SASS hoặc Javascript…
- routes : chứa các tuyến đường (route) đã định nghĩa của ứng dụng
- web.php: đơn giản nó sẽ chứa những route chứa request từ trình duyệt, chịu ảnh hưởng từ session, cookie, CSRF (tính năng bảo mật trong Laravel). Nếu ứngdụng của bạn không có các RESTful API thì hầu như các route sẽ nằm trong file này
- api.php: chứa các route có chức năng như là RESTful API hoặc cái gì đó tương tự, chịu ảnh hưởng qua kiểm duyệt token, authenticated… và có thể giới hạn thời gian tồn tại.
- console.php: nơi đây bạn có thể định nghĩa các Clouser bằng các lệnh console, dù nằm trong nhóm route nhưng đây không phải định nghĩa một route theo phương thức HTTP // php artisan inspire
- channels.php: bạn tìm đến file này khi ứng dụng của bạn sử dụng thời gian thực (real-time), file này hỗ trợ cho ứng dụng của bạn có thể tương tác các sự kiện giữa phía người dùng (client-side) và phía hệ thống (server-side).
- storage: chứa các file blade template đã được phiên dịch (complied), các file
- session, file cache và một số file khác được tạo bởi framework
- app: dùng để lưu trữ bất kỳ file nào do ứng dụng của mình tạo ra. Thư mục storages/app/public có thể dùng để lưu trữ các file do người dùng (user) đăng
- tải, chẳng hạn như ảnh đại diện (avatar) có thể truy cập công khai.
- framework: nó dùng để lưu trữ các file mà framework tạo ra để hỗ trợ trong việc chạy ứng dụng
- logs: sẽ chứa các file log gồm có các lỗi trong quá trình code (errror log).
- tests: dùng để test các class trong quá trình thử nghiệm trên commander
- vendor: chứa các thư việc tích hợp và mã nguồn của Laravel
Thư mục app
- Console là nơi chứa các lệnh Artisan do chính bạn tạo ra trong ứng dụng với lệnh make:command trong commander. Nơi đây còn chứa file Kernel.php, nó sẽ thực hiện việc đăng ký các lệnh Artisan của riêng bạn, ngoài ra có thể đặt lịch trình tác vụ cho các lệnh Artisan ấy.
- Exceptions này sẽ chứa các xử lý ngoại lệ (exception handler) của ứng dụng
- Http chứa các controller, middleware và form request. File Kernel.php dùng để định nghĩa cho các middleware. Nói chung thư mục này sẽ chứa các thành phần sẽ xử lý các yêu cầu đến ứng dụng, chẳng hạn các request từ phía client.
- Providers chứa tất cả các nhà cung cấp dịch vụ (service provider) cho ứng dụng
- Models mỗi bảng cơ sở dữ liệu có một “Model” tương ứng được sử dụng để tương tác với bảng đó. Mô hình cho phép bạn truy vấn dữ liệu trong bảng của mình, cũng như chèn các bản ghi mới vào bảng.
- Broadcasting này là nơi chứa tất cả các lớp broadcasting channel
- Events Để khởi tạo thư mục cũng như một lớp sự kiện (event class)
php artisan event:generate
php artisan make:event TestEvent
- Listeners này dùng để chứa các lớp xử lý các event ở trên, gọi là event listener. Các event listener này sẽ hoạt động khi nhận được một event khởi tạo và thực thi nhiệm vụ được khai báo trước
php artisan make:listener TestListener
- Jobs Hiểu đơn giản thư mục này chứa các class để sắp xếp các công việc vào hàng đợi, hoặc có thể chạy đồng bộ
php artisan make:job TestJob
- Mail Thư mục Mail chứa tất cả các lớp đại diện cho từng email. Các mail object này gói gọn các xử lý của việc xây dựng email trong một class đơn giản, có thể gửi bằng Mail::send.
php artisan make:mail TestMail
- Notifications chứa các class cho việc thông báo các hoạt động của ứng dụng, chẳng hạn như thông báo đơn giản về các event đã xảy ra trong ứng dụng. Tính năng này thông qua nhiều driver khác nhau như SMS, email, Slack hoặc lưu trữ trong database.
php artisan make:notification TestNotification
- Policies chứa các class dùng để xác định xem client có thể thực hiện một hành động nào đó đối với tài nguyên hay không.
php artisan make:policy TestPolicy
- Rules này có chức năng validate data từ request như khi code PHP thuần
php artisan make:rule TestRule
Kết luận:
Qua hướng dẫn laravel dài này, chúng ta đã biết được laravel là gì, học cách cài đặt Laravel, các khái niệm cơ bản, cầu trúc thư mục, mô hình MVC cũng như là bước chuẩn bị cho bước tiếp theo là tạo ứng dụng laravel đầu tiên.
Hy vọng hướng dẫn laravel này đã giúp bạn hiểu các khái niệm cơ bản của Laravel cũng như thúc đẩy bạn tìm hiểu thêm. Vui lòng bình luận quan điểm của bạn về Laravel cũng như về hướng dẫn này và bạn cũng có thể bình luận các mối quan tâm và vấn đề của mình. Tôi sẽ rất vui lòng giúp bạn. Cảm ơn!