PHP - Tiêu Chuẩn Lập Trình

Xin chào, các nhà phát triển PHP tương lai! Tôi rất vui mừng được hướng dẫn các bạn khám phá thế giới kỳ diệu của các tiêu chuẩn lập trình PHP. Là người đã dạy lập trình trong nhiều năm, tôi có thể đảm bảo rằng việc thành thạo các tiêu chuẩn này sẽ làm cho mã của bạn sạch sẽ hơn, dễ đọc hơn và chuyên nghiệp hơn. Hãy cùng bắt đầu!

PHP - Coding Standard

Đ indent và Độ Dài Dòng

Đ indent đúng cách giống như phép lịch sự trong lập trình - nó làm cho mọi thứ trở nên dễ chịu và dễ hiểu hơn. Trong PHP, chúng ta thường sử dụng 4 khoảng trống cho mỗi cấp độ đ indent. Dưới đây là một ví dụ:

<?php
if ($condition) {
echo "This line is indented";
if ($another_condition) {
echo "This line is indented even more";
}
}

Trong ví dụ này, câu lệnh đầu tiên echo được đ indent một lần (4 khoảng trống), và câu lệnh thứ hai echo được đ indent hai lần (8 khoảng trống). Hierarchy trực quan này giúp chúng ta nhanh chóng hiểu cấu trúc mã.

Về độ dài dòng, hãy cố gắng giữ các dòng dưới 80 ký tự. Nếu một dòng quá dài, hãy chia nó thành nhiều dòng như sau:

$very_long_variable_name = $another_long_variable_name
+ $yet_another_long_variable_name
+ $one_more_long_variable_name;

Cấu Trúc Điều Khiển

Cấu trúc điều khiển là những khối xây dựng logic của chương trình của bạn. Trong PHP, những cấu trúc phổ biến nhất là if, else, elseif, while, for, và switch. Dưới đây là cách định dạng chúng một cách chính xác:

if ($condition1) {
// mã ở đây
} elseif ($condition2) {
// mã tiếp theo ở đây
} else {
// mã tiếp theo hơn nữa ở đây
}

while ($condition) {
// mã để lặp lại
}

for ($i = 0; $i < 10; $i++) {
// mã để lặp lại
}

switch ($variable) {
case 1:
// mã cho trường hợp 1
break;
case 2:
// mã cho trường hợp 2
break;
default:
// mã mặc định
break;
}

Lưu ý rằng mỗi khối mã được bao quanh bởi các dấu ngoặc {} và đ indent đúng cách.

Gọi Hàm

Khi gọi hàm, không có khoảng trống giữa tên hàm và dấu ngoặc mở. Dưới đây là cách chính xác:

$result = myFunction($arg1, $arg2);

Nếu gọi hàm quá dài, bạn có thể chia nó thành nhiều dòng:

$result = myVeryLongFunctionName(
$arg1,
$arg2,
$arg3,
$arg4
);

Định Nghĩa Hàm

Khi định nghĩa hàm, hãy làm theo định dạng này:

function myFunction($arg1, $arg2 = null)
{
// thân hàm
}

Lưu ý rằng dấu ngoặc mở { được đặt trên một dòng mới. Đây được gọi là "Allman style" và phổ biến trong PHP.

Bình Luận

Bình luận rất quan trọng để giải thích mã của bạn. Hãy sử dụng chúng một cách hào phóng! Dưới đây là các loại bình luận trong PHP:

// Đây là một bình luận dòng đơn

/*
Đây là một bình luận đa dòng.
Nó có thể跨越多行。
*/

/**
* Đây là một bình luận DocBlock.
* Nó được sử dụng để tài liệu hóa hàm, lớp, v.v.
*
* @param string $arg1 Mô tả của đối số đầu tiên
* @return bool Mô tả của giá trị trả về
*/
function myDocumentedFunction($arg1)
{
// thân hàm
}

Thẻ PHP

Khi viết mã PHP, hãy luôn sử dụng thẻ PHP đầy đủ:

<?php
// Mã PHP của bạn ở đây
?>

Tránh sử dụng thẻ ngắn như <? vì chúng khôngalways được启用 trên tất cả các máy chủ.

Tên Biến

Tên biến nên mô tả và sử dụng chữ cái viết thường với gạch dưới (snake_case):

$user_name = "John";
$total_items = 5;

Đối với hằng số, sử dụng chữ cái viết hoa với gạch dưới:

define('MAX_USERS', 100);

Làm cho Hàm có Thể Đệm

Một hàm có thể đệm là một hàm có thể bị gián đoạn trong giữa quá trình thực thi và sau đó được gọi lại an toàn. Để đạt được điều này, tránh sử dụng các biến toàn cục hoặc các biến tĩnh trong hàm. Dưới đây là một ví dụ:

// Không có thể đệm
function badCounter()
{
static $count = 0;
return ++$count;
}

// Có thể đệm
function goodCounter($count)
{
return ++$count;
}

Căn chỉnh các khối khai báo

Khi khai báo nhiều biến, căn chỉnh chúng để dễ đọc hơn:

$short        = 1;
$long_variable = 2;
$longer_variable = 3;

Một câu lệnh mỗi dòng

Để rõ ràng, chỉ đặt một câu lệnh mỗi dòng:

$a = 1;
$b = 2;
$c = 3;

Tránh:

$a = 1; $b = 2; $c = 3; // Điều này khó đọc hơn

Phương thức hoặc hàm ngắn

Giữ các hàm ngắn và tập trung vào một nhiệm vụ duy nhất. Như một quy tắc chung, nếu một hàm dài hơn 20-30 dòng, hãy xem xét chia nó thành các hàm nhỏ hơn.

Dưới đây là bảng tóm tắt một số tiêu chuẩn lập trình PHP chúng ta đã thảo luận:

Tiêu Chuẩn Ví dụ
Đ indent Sử dụng 4 khoảng trống
Độ Dài Dòng Giữ dưới 80 ký tự
Gọi Hàm myFunction($arg1, $arg2);
Định Nghĩa Hàm function myFunction($arg1, $arg2) { ... }
Tên Biến Sử dụng snake_case: $user_name
Hằng số Sử dụng UPPER_CASE: MAX_USERS
Bình Luận Sử dụng //, /* */, hoặc /** */
Thẻ PHP Luôn sử dụng <?php ?>

Nhớ rằng, các tiêu chuẩn này không phải là những quy tắc tùy tiện. Chúng là những thực hành tốt nhất được phát triển trong nhiều năm bởi cộng đồng PHP để làm cho mã dễ đọc và duy trì hơn. Bằng cách tuân theo các tiêu chuẩn này, bạn không chỉ viết mã - bạn đang giao tiếp với các nhà phát triển khác có thể làm việc trên mã của bạn trong tương lai. Ai biết được? Nhà phát triển tương lai đó có thể là bạn!

Khi chúng ta kết thúc, tôi nhớ lại một học sinh曾经说过, "Học các tiêu chuẩn lập trình giống như học phép lịch sự. Ban đầu có vẻ phiền phức, nhưng khi bạn đã quen với nó, bạn sẽ tự hỏi làm thế nào bạn đã sống mà không có nó!" Vậy hãy tiếp tục thực hành các tiêu chuẩn này, và sớm chúng sẽ trở thành bản năng thứ hai. Chúc các bạn lập trình vui vẻ!

Credits: Image by storyset