|
Psr (php standard recommedation ) หมายเลข 1 การจัดระเบียบไฟล์ให้อ่านง่าย |
Psr (php standard recommedation ) หมายเลข 1 การจัดระเบียบไฟล์ให้อ่านง่าย มาต่อกันด้วยเรื่อง มาตรฐานการจัดไฟล์กันครับ
บทนี้จะกล่าวถึงรูปแบบการเขียน การจัดย่อหน้า รูปแบบของคำ คลาสและอื่นๆ
คำว่า “ต้อง”, “ต้องไม่”, “ต้องการ”, “น่าจะ”, “ไม่น่าจะ”, “ควร”,
“ไม่ควร”, “แนะนำ”, “อาจจะ”, และ “ตัวเลือก” ต่อไปนี้ถูกอธิบายไว้ที่ RFC 2119.
1. ไฟล์
1.1. PHP Tags
โค้ด php ต้องใช้แท็ก <?php ?> หรือ <?= ?> ต้องไม่ใช้อย่างอื่น
1.2. รูปแบบของภาษา
โค้ด php ต้องใช้รูปแบบ UTF-8 without BOM.
1.3. ผลกระทบข้างเคียง
ในไฟล์ควรที่จะประกาศตัวแปรที่จะไม่ส่งผลกระทบไปยังตัวคลาส หรือฟังก์ชันอื่นๆ
คำว่า “ผลกระทบ” หมายถึงค่าที่มาจาก คลาส, ฟังก์ชัน, ค่าคงที่, อื่นๆที่อาจจะมาทับ ตัวแปรที่เรา ประกาศไว้ที่คลาสหลัก
“ผลกระทบ” รวมไปถึงการส่งค่าออกไป จนถึงการ require หรือ include, การเชื่อมต่อกับบริการภายนอก , การแก้ไขไฟล์ ini ที่ใช้ในการตั้งค่า, การตั้งค่าการแสดงของ error และ exception, การแก้ไขตัวแปร global และ static ,การเขียนหรืออ่านไฟล์
ตัวอย่างนี้คือสิ่งที่ควรจะหลีกเลี่ยง
Code (PHP)
<?php
// ผลกระทบจากการตั้งค่าไฟล์ .ini
ini_set('error_reporting', E_ALL);
//ผลกระทบจากการ เรียกใช้ไฟล์
include "file.php";
// ผลกระทบจากการส่งค่าออก
echo "<html>\n";
// declaration
function foo()
{
// function body
}
ตัวอย่างนี้คือแบบที่ควรจะทำ
Code (PHP)
<?php
// declaration
function foo()
{
// function body
}
// สร้างเงื่อนไขขึ้นมาตรวจว่ามีฟังก์ชันนี้อยู่ไหม
if (! function_exists('bar')) {
function bar()
{
// function body
}
}
2. Namespace และ ชื่อของคลาส
Namespaces และ ชื่อของคลาสต้องเป็นไปตามมาตรฐาน PSR-0.
นั้นหมายความว่าในทุกๆไฟล์ ต้องมี namespace อยู่บรรทัดแรก
ชื่อของคลาสต้องอยู่ในรูแบบของ StudlyCaps คือคำที่มีตัวอักษรใหญ่และเล็กผสมกัน โดยไม่มีรูปแบบที่แน่นอน
ถ้าเขียนในเวอร์ชัน 5.3+
รูปแบบจะเป็นแบบนี้
Code (PHP)
<?php
// PHP 5.3+
namespace Vendor\Model;
class Foo
{
}
ถ้าเขียนในเวอร์ชัน 5.2.x หรือก่อนหน้า จะใช้ชื่อของผู้พัฒนาเป็นคำอุปสรรค เพื่อจัดระเบียบ
Code (PHP)
<?php
// PHP 5.2.x -
class Vendor_Model_Foo
{
}
3. ค่าคงที่, ตัวแปร, และ เมทอด
คลาสในตอนนี้ อ้างอิงถึง อินเตอร์เฟซและเทรซด้วย
3.1. ค่าคงที่
ค่าคงที่จะใช้ตัวอักษรใหญ่ทั้งหมด และคั่นแต่ละคำด้วยเครื่องหมายแบคสแลช
ตัวอย่าง
Code (PHP)
<?php
namespace Vendor\Model;
class Foo
{
const VERSION = '1.0';
const DATE_APPROVED = '2012-06-01';
}
3.2. ตัวแปร
มาตรฐานนี้ แนะนำให้หลีกเลี่ยงการประกาศตัวแปร ที่จะอยู่ในรูปแบบของ
$StudlyCaps, $camelCase, หรือ $under_score
3.3. Methods
ชื่อของเมทอดต้องอยู่ในรูปแบบของ camelCase คือตัวอักษรขึ้นต้นของ เเต่ละ
สรุป
ตอนนี้เพื่อนๆ ก็พอได้ทราบรูปแบบ การจัดระเบียบไฟล์แบบคร่าวๆ แล้วครับ บทหน้าเราจะเจาะลึก ยิบๆย่อยลงไปอีก ถึงขนาดการย่อหน้า เว้นวรรคกันเลยทีเดียว
สำหรับ psr-1 กับ 2 มาต่ออาทิตย์หน้านะครับ
แวะไปทักทายกันได้ที่นี่ครับ
http://laraveltut.com/
Download คู่มือ Composer
|
|
|
|
|
|