programming:rule
Khác biệt
Đây là những khác biệt giữa hai phiên bản của trang.
Phiên bản trước của cả hai bênPhiên bản trướcPhiên bản sau | Phiên bản trước | ||
programming:rule [2016/06/16 10:48] – [Đối với các file TPL] hoaquynhtim99 | programming:rule [2016/06/16 11:04] (hiện tại) – phiên bản cũ đã được khôi phục (2015/11/03 07:20) hoaquynhtim99 | ||
---|---|---|---|
Dòng 7: | Dòng 7: | ||
* Các file PHP phải có định dạng UNIX (UNIX format). | * Các file PHP phải có định dạng UNIX (UNIX format). | ||
- | * Khuyến nghị | + | * Các file PHP thông thường được mã hóa dạng ANSI, các file PHP có chứa ngôn ngữ UTF-8 được |
+ | |||
+ | File PHP mở đầu bằng | ||
+ | |||
+ | <code php> | ||
+ | <?php | ||
+ | </ | ||
+ | và kết thúc bằng (Kết thúc ?> của file php nên bỏ trong các file thuần php) | ||
+ | <code php> | ||
+ | ?> | ||
+ | </ | ||
+ | Giữa chúng phân cách với nội dung bằng ít nhất một dòng trống | ||
+ | Ví dụ | ||
+ | < | ||
+ | <?php | ||
+ | |||
+ | // Some code here | ||
+ | |||
+ | ?> | ||
+ | </ | ||
+ | Không được viết | ||
+ | <code php> | ||
+ | <?php | ||
+ | // Some code here | ||
+ | ?> | ||
+ | </ | ||
===== Mở đầu mỗi file ===== | ===== Mở đầu mỗi file ===== | ||
Dòng 15: | Dòng 40: | ||
/** | /** | ||
- | * @Project NUKEVIET | + | * @Project NUKEVIET |
* @Author VINADES., | * @Author VINADES., | ||
- | * @Copyright (C) 2014 VINADES., | + | * @Copyright (C) 2010 VINADES., |
* @License GNU/GPL version 2 or any later version | * @License GNU/GPL version 2 or any later version | ||
- | * @Createdate | + | * @Createdate |
*/ | */ | ||
// Some code here | // Some code here | ||
+ | ?> | ||
</ | </ | ||
Trong đó: | Trong đó: | ||
Dòng 29: | Dòng 55: | ||
* Sau Author là thông tin về tên tác giả, email. | * Sau Author là thông tin về tên tác giả, email. | ||
* Sau Copyright là thông tin bản quyền. | * Sau Copyright là thông tin bản quyền. | ||
- | * Sau License là giấy phép của dự án | ||
* Sau creatdate là thông tin về thời gian. | * Sau creatdate là thông tin về thời gian. | ||
==== Quy định riêng đối với file ngôn ngữ ==== | ==== Quy định riêng đối với file ngôn ngữ ==== | ||
Dòng 36: | Dòng 61: | ||
/** | /** | ||
- | * @Project NUKEVIET | + | * @Project NUKEVIET |
* @Author VINADES., | * @Author VINADES., | ||
- | * @Copyright (C) 2016 VINADES., | + | * @Copyright (C) 2010 VINADES., |
- | * @Language | + | * @Language |
* @License CC BY-SA (http:// | * @License CC BY-SA (http:// | ||
- | * @Createdate | + | * @Createdate |
*/ | */ | ||
// Some code here | // Some code here | ||
+ | ?> | ||
</ | </ | ||
Ta thêm thông tin ngôn ngữ Language bên dưới thông tin về bản quyền. | Ta thêm thông tin ngôn ngữ Language bên dưới thông tin về bản quyền. | ||
- | ===== Chuẩn định dạng các file PHP ===== | + | ===== Khoảng cách giữa |
+ | Các khối code không liên quan đến nhau nên được phân cách bởi một dòng trống và chỉ phân cách bởi một dòng duy nhất. | ||
+ | Ví dụ: | ||
+ | <code php> | ||
+ | if( ! defined( ' | ||
+ | $page_title = $lang_module[' | ||
+ | $array_lang_setup = array(); | ||
+ | $array_lang_setup[] = array( '', | ||
+ | |||
+ | $sql = " | ||
+ | $result = $db-> | ||
+ | |||
+ | while( list( $lang_i ) = $db-> | ||
+ | { | ||
+ | if( in_array( $lang_i, $global_config[' | ||
+ | { | ||
+ | $array_lang_setup[$lang_i] = array( $lang_i, $language_array[$lang_i][' | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Không nên viết | ||
+ | <code php> | ||
+ | if( ! defined( ' | ||
+ | $page_title = $lang_module[' | ||
+ | $array_lang_setup = array(); | ||
+ | $array_lang_setup[] = array( '', | ||
+ | $sql = " | ||
+ | $result = $db-> | ||
+ | while( list( $lang_i ) = $db-> | ||
+ | { | ||
+ | if( in_array( $lang_i, $global_config[' | ||
+ | { | ||
+ | $array_lang_setup[$lang_i] = array( $lang_i, $language_array[$lang_i][' | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Thụt đầu dòng bằng tab, không được thụt đầu dòng bằng kí tự trống hoặc bỏ qua thụt đầu dòng | ||
+ | Ví dụ: | ||
+ | <code php> | ||
+ | while( list( $lang_i ) = $db-> | ||
+ | { | ||
+ | if( in_array( $lang_i, $global_config[' | ||
+ | { | ||
+ | $array_lang_setup[$lang_i] = array( $lang_i, $language_array[$lang_i][' | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | Không viết: | ||
+ | <code php> | ||
+ | while( list( $lang_i ) = $db-> | ||
+ | { | ||
+ | if( in_array( $lang_i, $global_config[' | ||
+ | { | ||
+ | $array_lang_setup[$lang_i] = array( $lang_i, $language_array[$lang_i][' | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | ===== Khoảng cách giữa các kí tự ===== | ||
+ | * Đăt trước và sau kí tự = dấu cách | ||
+ | * Đặt sau ( một dấu cách | ||
+ | * Đặt sau dấu , một dấu cách | ||
+ | * Sau if, else, while, foreach, for.. nên bắt đầu ngay với ( không nên đặt dấu cách | ||
+ | ===== Đặt tên biến ===== | ||
+ | * Các biến tạm nên bắt đầu bằng _ ví dụ $_tmp, $_title. | ||
+ | * Tên biến không quá ngắn cũng không quá dài, mô tả đúng chức năng của biến <code php> | ||
+ | * Sử dụng cùng tên biến đối với những câu lệnh cùng chức năng (nếu có thể) ví dụ | ||
+ | * Truy vấn sql dùng <code php>$sql = " | ||
+ | * Hay <code php> | ||
===== Array ===== | ===== Array ===== | ||
Nếu mảng ngắn từ một đến hai phần tử ta viết | Nếu mảng ngắn từ một đến hai phần tử ta viết | ||
Dòng 78: | Dòng 173: | ||
</ | </ | ||
+ | ===== if, else, while, for... ===== | ||
+ | Nếu sau if chỉ có một câu lệnh ngắn ta viết câu lệnh cùng một dòng với if | ||
+ | <code php>if( $i > 0 ) die( ' | ||
+ | Nếu sau if có nhiều hơn một câu lệnh, câu lệnh quá dài hoặc sau đó có else ta phải xuống hàng bởi { | ||
+ | <code php> | ||
+ | if( $title > 200 ) | ||
+ | { | ||
+ | echo( 'Tieu de qua lon' ); | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | echo( 'Tieu de hop le' ); | ||
+ | } | ||
+ | </ | ||
+ | Không được để kí tự { và } ngang hàng với if, else, for, while: | ||
+ | <code php> | ||
+ | if( $title > 200 ){ | ||
+ | echo( 'Tieu de qua lon' ); | ||
+ | }else{ | ||
+ | echo( 'Tieu de hop le' ); | ||
+ | } | ||
+ | while( $i ){ | ||
+ | $title .= ' | ||
+ | -- $i; | ||
+ | } | ||
+ | </ | ||
+ | ===== function, class ===== | ||
+ | Một hàm phải có mô tả bên trên | ||
+ | <code php>/** | ||
+ | * nv_is_blocker_proxy() | ||
+ | * | ||
+ | * @param string $is_proxy | ||
+ | * @param integer $proxy_blocker | ||
+ | * @return | ||
+ | */ | ||
+ | function nv_is_blocker_proxy( $is_proxy, $proxy_blocker ) | ||
+ | { | ||
+ | if( $proxy_blocker == 1 and $is_proxy == ' | ||
+ | if( $proxy_blocker == 2 and ( $is_proxy == ' | ||
+ | if( $proxy_blocker == 3 and $is_proxy != ' | ||
+ | |||
+ | return false; | ||
+ | }</ | ||
+ | tương tự một lớp cũng cần có mô tả | ||
+ | <code php>/** | ||
+ | * NVbuffer | ||
+ | | ||
+ | * @package NukeViet | ||
+ | * @author VINADES., | ||
+ | * @copyright 2012 | ||
+ | * @version 3.3 | ||
+ | * @access public | ||
+ | */ | ||
+ | class NVbuffer | ||
+ | { | ||
+ | var $position = 0; | ||
+ | |||
+ | </ | ||
+ | |||
+ | Cần hạn chế tối đa việc viết chung mã HTML, JS, CSS vào các file php. | ||
+ | |||
+ | |||
+ | ===== Ghi chú (comment) ===== | ||
+ | |||
+ | Khi thiết kế CSDL, cần thêm ghi chú cho mỗi trường dữ liệu. | ||
+ | |||
+ | Trong tập tin code, để đúng chuẩn cần viết ghi chú ngắn gọn cho mỗi dòng bằng < | ||
+ | |||
+ | Ví dụ: Dùng < | ||
+ | Không dùng < | ||
+ | Không dùng < | ||
====== Đối với các file JS ====== | ====== Đối với các file JS ====== | ||
- | Áp dụng chuẩn | + | Áp dụng chuẩn |
+ | |||
+ | Bắt đầu bởi mô tả: | ||
+ | <code javascript> | ||
+ | /* * | ||
+ | * @Project NUKEVIET 3.0 | ||
+ | * @Author VINADES., JSC ( contact@vinades.vn ) | ||
+ | * @Copyright ( C ) 2010 VINADES., JSC. All rights reserved | ||
+ | * @License GNU/GPL version 2 or any later version | ||
+ | * @Createdate 1 - 31 - 2010 5 : 12 | ||
+ | */ | ||
+ | </ | ||
+ | |||
+ | Đặt { ngay sau các lệnh. | ||
+ | <code javascript> | ||
+ | if( a == 0 ) { | ||
+ | a = 1; | ||
+ | } | ||
+ | </ | ||
+ | Đặt else if ngay sau kí tự } | ||
+ | <code javascript> | ||
+ | if( a == 0 ){ | ||
+ | a = 1; | ||
+ | } else if ( a == -1 ) { | ||
+ | break; | ||
+ | } | ||
+ | </ | ||
+ | Các file javascript trong thư mục ''/ | ||
====== Đối với các file TPL ====== | ====== Đối với các file TPL ====== | ||
Nếu không có trường hợp đặc biệt nên dùng duy nhất một tên main để dánh dấu khối | Nếu không có trường hợp đặc biệt nên dùng duy nhất một tên main để dánh dấu khối | ||
Dòng 102: | Dòng 295: | ||
</ | </ | ||
- | > Các file TPL thực chất chứa mã HTML, JS tương tự các file .html, cần dùng 4 ký tự space để đánh dấu các thẻ cha con: | + | > Các file TPL thực chất chứa mã HTML, JS tương tự các file .html, cần dùng tab để đánh dấu các thẻ cha con: |
<code html> | <code html> | ||
<!-- BEGIN: main --> | <!-- BEGIN: main --> |
programming/rule.txt · Sửa đổi lần cuối: 2016/06/16 11:04 bởi hoaquynhtim99