Skip to content

Instantly share code, notes, and snippets.

@trungx
Last active March 20, 2020 10:22
Show Gist options
  • Save trungx/d4781edc63fb435b5be4a391658d47a1 to your computer and use it in GitHub Desktop.
Save trungx/d4781edc63fb435b5be4a391658d47a1 to your computer and use it in GitHub Desktop.
Coding Style Guide

Coding Style Guide (follow by PSR-2)

Reference: https://www.php-fig.org/psr

PSR-0: Autoloading Standard ()

Reference: https://www.php-fig.org/psr/psr-0/

  • Updating....

PSR-1: Basic Coding Standard (Các chuẩn cơ bản khi viết code)

Reference: https://www.php-fig.org/psr/psr-1/

  • Hằng số phải viết hoa và chia ra bởi dấu cách
const PROJECT_NAME = "Beauty Navi";

const ACTIVE_USER = true;
  • Tên hàm phải ở dạng camelCase, và thường bắt đầu bằng động từ.
public function bookHotel()
{
    ....
}

public function activeUser()
{
    ....
}
  • Tên biến phải ở dạng camelCase hoặc snake_case
public function bookHotel()
{
    $hotelName = Hotel::find($id)->name;
}
  • Tên class phải ở dạng PascalCase
public class MobileController extends ApiController
{
    ...
}
  • Tên biến, tên hàm, tên class nên là danh từ, cụm danh từ hoặc tính từ.
Ví dụ:

Tên biến: userName, isUpdated

Tên hàm: getHotel, sendSMS

Tên class: PassengerController
  • Nên đặt tên có nghĩa, tránh những trường hợp chung chung

PSR-2: Coding Style Guide (Quy tắt trình bày)

Reference: https://www.php-fig.org/psr/psr-2/

  • Sử dụng 4 space thay 1 tab để thụt dòng
  • Một dòng không nên có quá 120 kí tự, tốt nhất nên nhỏ hơn hoặc bằng 80 kí tự
  • Không nên có kí tự trắng ở cuối dòng
  • Phải có 1 dòng trắng sau khi khai báo namespace và các use
<?php
namespace Vendor\Package;

use FooClass;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;

// ... additional PHP code ...
  • Thẻ { và } của 1 hàm, class phải nằm riêng biệt trên 1 dòng
public function getAttributeName()
{
    .....
}
  • Visibility (public, private, protected) phải được khai báo cho tất cả các hàm và thuộc tính.
  • Sau if, else, elseif phải có 1 khoảng trắng
  • Dấu { của cấu trúc điều khiển phải nằm cùng dòng và } phải nằm riêng ở 1 dòng.
  • Phải có 1 khoảng trắng trước và sau các phép toán, khi ép kiểu nên có 1 khoảng trắng giữa kiểu dữ liệu và biến được ép.
$a = $b + $c;
$a = (int) $d;
  • Xóa những biến không được sử dụng.
  • Xóa code dư, code comment, code debug
  • Function phải luôn có description
/**
 * Build url based on option
 * @param string extStr
 * @return string
 */
public function buildUrl($extStr)
{
    .....
}
  • Phân biệt public/private/protected không phải luôn luôn xài public
  • All PHP files MUST use the Unix LF (linefeed) line ending (not CRLF).

Example file was followed by psr-2

https://gist.github.com/trungx/8c2979264e9ae855565051d3b4a3d717

Credits:

  • Created by An Nguyen (SFSmember)
  • Updated by Trung Ta (ex-SFSmember)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment