Bài giảng Phát triển phần mềm nguồn mở: Bài 3 - Nguyễn Hữu Thể
lượt xem 2
download
Bài 3 - PHP standards recommendations. Những nội dung chính được trình bày trong bài này gồm có: Basic coding standard, coding style guide, logger interface, autoloading standard, caching interface, HTTP message interface. Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Phát triển phần mềm nguồn mở: Bài 3 - Nguyễn Hữu Thể
- PHÁT TRIỂN PHẦN MỀM NGUỒN MỞ PHP Standards Recommendations Nguyễn Hữu Thể
- Content Basic Coding Standard Coding Style Guide Logger Interface Autoloading Standard Caching Interface HTTP Message Interface 2
- Index by Status (Accepted) Num Title Editor Coordinator Sponsor 1 Basic Coding Standard Paul M. Jones N/A N/A 2 Coding Style Guide Paul M. Jones N/A N/A Jordi 3 Logger Interface N/A N/A Boggiano 4 Autoloading Standard Paul M. Jones Phil Sturgeon Larry Garfield Paul 6 Caching Interface Larry Garfield Robert Hafner Dragoonis Matthew HTTP Message Beau 7 Weier Paul M. Jones Interface Simensen O'Phinney Matthew Marc 13 Hypermedia Links Larry Garfield Weier Alexander O'Phinney http://www.php-fig.org/psr/ 3
- PSR-1: Basic Coding Standard 1. Overview Files MUST use only
- PSR-1: Basic Coding Standard SHOULD NOT SHOULD
- PSR-1: Basic Coding Standard Namespace and Class Names Namespaces and classes MUST follow an "autoloading" PSR: [PSR-0, PSR-4]. Class names MUST be declared in StudlyCaps. // PHP 5.3 and later: namespace Vendor\Model; class Foo { } 6
- PSR-1: Basic Coding Standard Class Constants, Properties, and Methods The term "class" refers to all classes, interfaces, and traits. Class constants MUST be declared in all upper case with underscore separators. namespace Vendor\Model; class Foo { const VERSION = '1.0'; const DATE_APPROVED = '2012-06-01'; } 7
- PSR-1: Basic Coding Standard Properties • This guide intentionally avoids any recommendation regarding the use of $StudlyCaps, $camelCase, or $under_score property names. Methods • Method names MUST be declared in camelCase(). 8
- PSR-2: Coding Style Guide Code MUST use 4 spaces for indenting, not tabs. There MUST NOT be a hard limit on line length; the soft limit MUST be 120 characters; lines SHOULD be 80 characters or less. There MUST be one blank line after the namespace declaration, and there MUST be one blank line after the block of use declarations. Opening braces for classes MUST go on the next line, and closing braces MUST go on the next line after the body. Opening braces for methods MUST go on the next line, and closing braces MUST go on the next line after the body. 9
- PSR-2: Coding Style Guide Control structure keywords MUST have one space after them; method and function calls MUST NOT. Opening braces for control structures MUST go on the same line, and closing braces MUST go on the next line after the body. Opening parentheses for control structures MUST NOT have a space after them, and closing parentheses for control structures MUST NOT have a space before. 10
- namespace Vendor\Package; use FooInterface; use BarClass as Bar; use OtherVendor\OtherPackage\BazClass; class Foo extends Bar implements FooInterface { public function sampleMethod($a, $b = null) { if ($a === $b) { bar(); } elseif ($a > $b) { $foo->bar($arg1); } else { BazClass::bar($arg2, $arg3); } } final public static function bar() { // method body } }
- PSR-3: Logger Interface The LoggerInterface exposes eight methods to write logs to the eight RFC 5424 levels (debug, info, notice, warning, error, critical, alert, emergency). A ninth method, log, accepts a log level as the first argument. Calling this method with one of the log level constants MUST have the same result as calling the level-specific method. Users SHOULD NOT use a custom level without knowing for sure the current implementation supports it. 12
- PSR-4: Autoloader The term "class" refers to classes, interfaces, traits, and other similar structures. A fully qualified class name has the following form: \(\)*\ The fully qualified class name MUST have a top-level namespace name, also known as a "vendor namespace". The fully qualified class name MAY have one or more sub- namespace names. The fully qualified class name MUST have a terminating class name. 13
- PSR-4: Autoloader Underscores have no special meaning in any portion of the fully qualified class name. Alphabetic characters in the fully qualified class name MAY be any combination of lower case and upper case. All class names MUST be referenced in a case-sensitive fashion. When loading a file that corresponds to a fully qualified class name ... 14
- PSR-4: Autoloader The contiguous sub-namespace names after the "namespace prefix" correspond to a subdirectory within a "base directory", in which the namespace separators represent directory separators. The subdirectory name MUST match the case of the sub-namespace names. The terminating class name corresponds to a file name ending in .php. The file name MUST match the case of the terminating class name. Autoloader implementations MUST NOT throw exceptions, MUST NOT raise errors of any level, and SHOULD NOT return a value. 15
- PSR-6: # Introduction The goal of this PSR is to allow developers to create cache-aware libraries that can be integrated into existing frameworks and systems without the need for custom development. 16
- PSR-7: HTTP message interfaces This document describes common interfaces for representing HTTP messages as described in : • RFC 7230 • RFC 7231, • URIs for use with HTTP messages as described in RFC 3986. HTTP messages are the foundation of web development. • Web browsers and HTTP clients such as cURL create HTTP request messages that are sent to a web server, which provides an HTTP response message. • Server-side code receives an HTTP request message, and returns an HTTP response message. 17
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Phát triển phần mềm mã nguồn mở: Chương 2 - ThS. Dương Thành Phết
21 p | 109 | 13
-
Bài giảng Phát triển phần mềm mã nguồn mở: Chương 1 - ThS. Dương Thành Phết
31 p | 115 | 10
-
Bài giảng Phát triển phần mềm hướng dịch vụ: Phần 1
56 p | 49 | 8
-
Bài giảng Phát triển phần mềm mã nguồn mở: Linux Kernel - Bùi Minh Quân
32 p | 132 | 8
-
Bài giảng Phát triển phần mềm mã nguồn mở: Quản lý gói phần mềm - TS. Ngô Bá Hùng
12 p | 112 | 8
-
Bài giảng Phát triển phần mềm hướng dịch vụ: Phần 2
65 p | 30 | 7
-
Bài giảng Phát triển phần mềm mã nguồn mở: Lập trình C/Linux - Bùi Minh Quân
29 p | 94 | 6
-
Bài giảng Phát triển phần mềm mã nguồn mở: Mở đầu - Bùi Minh Quân
12 p | 104 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Thị trường điện tử
43 p | 51 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Linux user management - Bùi Minh Quân
28 p | 123 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Giới thiệu về phần mềm mã nguồn mở - Bùi Minh Quân
39 p | 93 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Linux operating system - Bùi Minh Quân (tt)
43 p | 91 | 5
-
Bài giảng Phát triển phần mềm mã nguồn mở: Giới thiệu
16 p | 82 | 4
-
Bài giảng Phát triển phần mềm mã nguồn mở: IDE và SDK
40 p | 38 | 4
-
Bài giảng Phát triển phần mềm mã nguồn mở: MVC
12 p | 41 | 4
-
Bài giảng Phát triển phần mềm mã nguồn mở: Linux operating system - Bùi Minh Quân
15 p | 97 | 4
-
Bài giảng Phát triển phần mềm mã nguồn mở: Giới thiệu Drupal
49 p | 29 | 3
-
Bài giảng Phát triển phần mềm mã nguồn mở: Zend framework
11 p | 33 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn