Helloooo, xin chào các bạn ! Đây là một series xây dựng từ con số 0 đối với một dự án Blog cá nhân cho những bạn bắt đầu học laravel và đã có kiến thức cơ bản muốn xây dựng dự án đơn giản cho riêng mình. Trong series này mình sẽ sử dụng giao diện dựa trên design từ Figma như sau:
![[Laravel Blog Tutorial] Tổng quan và khởi tạo dự án](https://ppe.edu.vn/wp-content/uploads/2023/11/tao-trang-blog-voi-lavel.jpg)
Bạn có thể thấy giao diện khá là basic, nhưng series này dành cho nhưng bạn mới học thì mình thấy khá là ổn rồi. Nếu bạn muốn tìm hiểu các series hay các khóa học khác uy tín trên mạng thì bạn có thể tham khảo bài viết: 29 nguồn học và các series tutorial về Laravel tốt nhất cho người mới bắt đầu của mình.
Bạn đang xem: [Laravel Blog Tutorial] Tổng quan và khởi tạo dự án
Vậy chúng ta sẽ sử dụng những gì trong dự án này ?
Thư viện Frontend Flowbite
![[Laravel Blog Tutorial] Tổng quan và khởi tạo dự án](https://danda.vn/2023/uploads/1691836465.jpg)
Tailwind CSS là một bộ công cụ CSS được thiết kế để xây dựng giao diện người dùng tùy chỉnh. Nó cung cấp một loạt các lớp CSS tiền xử lý để bạn có thể áp dụng trực tiếp vào các phần tử HTML để tạo ra giao diện theo ý muốn.
Flowbite sử dụng Tailwind CSS làm cơ sở để tạo ra các thành phần giao diện người dùng đã được định nghĩa trước. Nó cung cấp một tập hợp các thành phần như nút, biểu mẫu, thanh điều hướng, bảng, thẻ và nhiều hơn nữa, đã được tạo sẵn với các lớp CSS Tailwind để bạn có thể sử dụng và tùy chỉnh dễ dàng.
Với Flowbite, bạn có thể sử dụng cú pháp của Tailwind CSS và các thành phần đã được xây dựng sẵn để nhanh chóng xây dựng giao diện người dùng linh hoạt và tùy chỉnh theo nhu cầu của bạn.
Framework Js – AlpineJS
![[Laravel Blog Tutorial] Tổng quan và khởi tạo dự án](https://danda.vn/2023/uploads/1691836556.jpg)
Alpine.js là một framework JavaScript nhẹ nhưng mạnh mẽ, tập trung vào việc cung cấp khả năng tương tác người dùng trực tiếp (interactivity) trên các trang web. Nó được thiết kế để dễ dàng tích hợp vào các dự án hiện có mà không yêu cầu quá nhiều thay đổi trong cấu trúc HTML hoặc CSS.
Dưới đây là một số đặc điểm và tính năng chính của Alpine.js:
- Kích thước nhỏ: Alpine.js có kích thước nhỏ với chỉ khoảng 10KB khi nén, giúp tối ưu hóa tốc độ tải trang.
- Cú pháp đơn giản: Alpine.js sử dụng cú pháp gần gũi và dễ hiểu, với các thuộc tính và hàm JavaScript được gắn vào các phần tử HTML thông qua các thuộc tính dựa trên tiền tố “x-“.
- Tương tác trực tiếp: Alpine.js cho phép bạn thêm các tính năng tương tác người dùng như xử lý sự kiện, hiển thị/ẩn nội dung, hoạt động CSS và nhiều hơn nữa mà không cần phải viết nhiều mã JavaScript phức tạp.
- Đơn giản hóa việc quản lý trạng thái: Alpine.js cung cấp các khối lệnh như “x-data” để quản lý trạng thái của ứng dụng và theo dõi các thay đổi trong trạng thái đó.
- Tích hợp dễ dàng: Alpine.js tương thích với các thư viện JavaScript khác và có thể được tích hợp vào các dự án sử dụng các framework như Laravel, Ruby on Rails và các trình tạo giao diện như Tailwind CSS.
Tuy nhiên, Alpine.js không phải là một framework hoàn chỉnh như Vue.js hay React. Nó tập trung vào việc cung cấp khả năng tương tác người dùng cơ bản hơn là quản lý trạng thái phức tạp và routing. Điều này khiến nó trở thành một lựa chọn phù hợp cho các dự án nhỏ hoặc các trang web đơn giản mà không cần một framework JavaScript lớn.
Laravel Livewire – Nếu cần thiết
![[Laravel Blog Tutorial] Tổng quan và khởi tạo dự án](https://danda.vn/2023/uploads/1691836700.png)
Xem thêm : Giới Thiệu
Chúng ta có thể cân nhắc sử dụng thêm package này để hỗ trợ thuận tiện cho việc coding. Vậy nó là gì ?
Livewire là một thư viện trong Laravel, một framework phát triển ứng dụng web phổ biến và mạnh mẽ. Livewire được phát triển bởi Caleb Porzio và cung cấp một cách tiếp cận mới để xây dựng giao diện người dùng tương tác trong Laravel mà không cần viết JavaScript.
Livewire kết hợp các khả năng của Laravel và công nghệ WebSockets để tạo ra một trải nghiệm tương tác người dùng mượt mà và phản hồi. Thay vì phải viết mã JavaScript để xử lý các tương tác người dùng như gửi biểu mẫu, thay đổi trạng thái hoặc tải lại trang, bạn có thể sử dụng Livewire để xử lý các sự kiện và tương tác người dùng trực tiếp trên phía máy chủ.
Một số đặc điểm và lợi ích chính của Livewire là:
- Tương thích với Laravel: Livewire được thiết kế để hoạt động tốt với Laravel, nó sử dụng cú pháp Laravel và tích hợp trực tiếp với các tính năng của framework.
- Không cần viết JavaScript: Với Livewire, bạn có thể xây dựng các tương tác người dùng phức tạp mà không cần viết mã JavaScript. Thay vào đó, bạn sử dụng các thành phần Livewire và viết mã PHP trên phía máy chủ để xử lý các tương tác đó.
- Quản lý trạng thái dễ dàng: Livewire cho phép bạn quản lý trạng thái ứng dụng trên phía máy chủ một cách dễ dàng. Bạn có thể theo dõi và cập nhật các biến trạng thái trong các thành phần Livewire mà không cần phải lo lắng về việc lưu trữ trạng thái trên phía máy khách.
- Tương tác thời gian thực: Livewire cung cấp khả năng tương tác thời gian thực bằng cách sử dụng công nghệ WebSockets. Điều này cho phép bạn cập nhật và đồng bộ hóa dữ liệu trên giao diện người dùng mà không cần tải lại trang.
- Tích hợp dễ dàng: Livewire tích hợp tốt với các tính năng khác của Laravel như routing, validation, middleware và cơ sở dữ liệu. Bạn có thể sử dụng Livewire để xây dựng các thành phần tương tác người dùng trong các trang Laravel hiện có.
Livewire cung cấp một cách tiếp cận mới và thuận tiện để xây dựng giao diện người dùng tương tác trong Laravel mà không cần viết nhiều mã JavaScript. Nó phù hợp cho các dự án nhỏ đến trung bình hoặc trong các trường hợp nơi bạn muốn tận dụng sức mạnh của Laravel để xây dựng các trang web tương tác mà không cần quá phụ thuộc vào JavaScript.
Khởi tạo dự án
Khởi tạo bằng composer
Cũng như các dự án khác, việc khởi tạo dự án này cũng tương tự:
![[Laravel Blog Tutorial] Tổng quan và khởi tạo dự án](https://danda.vn/2023/uploads/1691836830.png)
Cài đặt package Auth
Sau khi khởi tạo dự án thành công, chúng ta sẽ cài đặt package Breeze để xác thực.
![[Laravel Blog Tutorial] Tổng quan và khởi tạo dự án](https://danda.vn/2023/uploads/1691836900.png)
Package sẽ hỏi chúng ta sẽ chọn stack nào để cài đặt. Ở đây mình chọn blade => 0. Và đợi project cài đặt node_modules
![[Laravel Blog Tutorial] Tổng quan và khởi tạo dự án](https://danda.vn/2023/uploads/1691836971.png)
Start dự án
Tiếp theo, bạn đã có thể start dự án với 2 lệnh sau đây.
Xem thêm : 11 thủ thuật quảng cáo facebook hiệu quả
Mở đường dẫn http://127.0.0.1:8000 và xem kết quả
![[Laravel Blog Tutorial] Tổng quan và khởi tạo dự án](https://danda.vn/2023/uploads/1691837233.png)
Tạo database và fix lỗi key too long
Tiếp theo khởi tạo database cho dự án này và set nó vào .env
Tiếp theo bạn hãy run lệnh php artisan migrate để các table được đẩy vào database.
Thông thường ở các dự án mới sẽ gặp lỗi này
![[Laravel Blog Tutorial] Tổng quan và khởi tạo dự án](https://danda.vn/2023/uploads/1691837128.png)
Hãy sửa nó bằng cách như sau:
AppProvidersAppServiceProviders
chạy lại với câu lệnh php artisan migrate:fresh
Như vậy là chúng ta đã khởi tạo thành công một dự án Blog đơn giản rồi, ở bài viết sau mình sẽ hướng dẫn các bạn coding các component: header, footer và hero trong trang web nhé. Xin chào các bạn !
Chủ đề:
Nguồn: https://ppe.edu.vn
Danh mục: Blog