intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Phát triển phần mềm nguồn mở: Bài 3 - Nguyễn Hữu Thể

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:17

30
lượt xem
2
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

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ể

  1. PHÁT TRIỂN PHẦN MỀM NGUỒN MỞ PHP Standards Recommendations Nguyễn Hữu Thể
  2. Content  Basic Coding Standard  Coding Style Guide  Logger Interface  Autoloading Standard  Caching Interface  HTTP Message Interface 2
  3. 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
  4. PSR-1: Basic Coding Standard 1. Overview  Files MUST use only
  5. PSR-1: Basic Coding Standard SHOULD NOT SHOULD
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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 } }
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0