Reference: https://www.php-fig.org/psr
Reference: https://www.php-fig.org/psr/psr-0/
- Updating....
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
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).
https://gist.github.com/trungx/8c2979264e9ae855565051d3b4a3d717
- Created by An Nguyen (SFSmember)
- Updated by Trung Ta (ex-SFSmember)