Bài 1: Giới thiệu Blade Template Engine và Cú pháp in dữ liệu
Chào bạn, chúng ta cùng đi vào Bài 1 của series nhé!
Blade là template engine mặc định cực kỳ mạnh mẽ đi kèm với Laravel. Nó cho phép bạn kết hợp code HTML với logic PHP một cách trực quan, giúp mã nguồn sạch sẽ và dễ bảo trì hơn rất nhiều so với việc viết PHP thuần trong file HTML.
1. Blade Template Engine là gì?
-
Định nghĩa: Là công cụ giúp bạn render giao diện người dùng. Các file view của Blade có phần mở rộng là
.blade.phpvà được đặt trong thư mụcresources/views/. -
Hiệu suất: Blade cực kỳ nhẹ. Khi ứng dụng chạy, Laravel sẽ biên dịch các file Blade thành mã PHP thuần và lưu vào thư mục cache (
storage/framework/views), do đó nó không làm giảm hiệu suất của trang web.
2. Cú pháp in dữ liệu cốt lõi ({{ }})
Để hiển thị giá trị của một biến ra màn hình, bạn sử dụng cặp dấu ngoặc nhọn kép. Ví dụ:
HTML
<h1>Xin chào, {{ $name }}!</h1>
<p>Email của bạn là: {{ $email }}</p>
🔒 Điểm bảo mật quan trọng: Cú pháp
{{ }}sẽ tự động thực thi hàmhtmlspecialcharscủa PHP đối với dữ liệu đầu ra. Điều này giúp bảo vệ ứng dụng của bạn khỏi các cuộc tấn công XSS (Cross-Site Scripting) khi người dùng nhập các đoạn mã độc hại.
3. Các cú pháp hỗ trợ nhanh trong Blade
Bên cạnh việc in dữ liệu an toàn, phần mở đầu này còn cung cấp một số tiện ích đi kèm rất hữu ích:
-
In dữ liệu thô (Không escape): Nếu bạn muốn hiển thị một chuỗi có chứa các thẻ HTML (ví dụ: chuỗi từ trình soạn thảo văn bản như CKEditor), hãy dùng cú pháp
{!! $htmlString !!}. -
Bình luận (Comments):
-
HTML thông thường:
<!-- Bình luận -->(Vẫn hiển thị khi bấm F12 xem nguồn trang). -
Blade Comment:
{{-- Bình luận bảo mật --}}(Sẽ bị biến mất hoàn toàn khi biên dịch, người dùng không thể thấy mã nguồn).
-
-
Khối PHP thuần nhanh: Dùng
@phpkhi bạn cần xử lý logic ngắn ngay trong view:HTML
@php $total = $price * $quantity; @endphp <p>Tổng tiền: {{ $total }} VNĐ</p>
Bạn đã sẵn sàng để chuyển sang Bài 2: Cấu trúc điều kiện (@if, @switch,... trong Blade) chưa?
All rights reserved