Coding Standard in PHP / PHP Coding Style - ทบทวนพื้นฐาน รูปแบบการเขียน Code PHP

PHP Code Demarcation - การเปิด-ปิด PHP Code

จะต้องเปิด tag ด้วยรูปแบบเต็ม "<?php" ตามมารตฐานของ PHP tags เสมอ สำหรับ tag แบบสั้นนั้นไม่เป็นที่ยอมรับแล้ว แต่ก็สามารถตั้งใน php.ini ให้เปิดใช้ได้อยู่ แต่ในอนาคตไม่แน่อาจจะปิดไปถาวรเลยก็เป็นได้

ถ้าในไฟล์โปรแกรมของเรามีเฉพาะ code PHP ล้วน เราต้องไม่มีตัวปิด tag ("?>") เพราะ PHP จะไม่สนใจ tag ปิดนี้ และถ้าเราไม่ปิด tag นี้ยังสามารถป้องกันการแสดงผล space (ที่อาจจะเผลอเคาะ space หรือขึ้นบรรทัดใหม่ไว้หลัง "?>") ก่อนการใช้งานฟังก์ชั่น header() ได้อีกด้วย

<?php

?>

 

การตั้งชื่อ

  • ชื่อตัวแปล และชื่อ function ทั่วไป

ให้ขึ้นต้นด้วยตัวอักษรภาษาอังกฤษ ตัวพิมพ์เล็ก และระหว่างคำจึงใช้ตัวพิมพ์ใหญ่ เช่น

$greetingMessage = 'Hello!';
  • ชื่อ method (function ใน class) หรือ ชื่อ property หรือ data member ใน class 

ถ้าเป็น private หรือ protected ให้ขึ้นต้นด้วย under scholl "_" เสมอ แต่ถ้าเป็น public ไม่ต้องขึ้นต้นด้วย under scholl เช่น

class Foo
{
	private   $_var1;
	protected $_var2;
	public    $var3;
	
	private function _doPrivateThing()
	{}
	protected function _doProtectedThing()
	{}
	public function doPublicThing()
	{}
}

 

Strings - สตริง

  • String Literals - สตริงล้วน

เมื่อสตริงเป็นสตริงล้วนๆ (ไม่มีตัวแปลปนอยู่) จะต้องเปิด-ปิด สตริงด้วย "single quote" เสมอ เช่น

$a = 'Example String';


  • String Literals Containing Apostrophes - สตริงล้วนที่มี "Apostrophes"

สำหรับสตริงที่มี "Apostrophes" อยู่ด้วย ให้เปิด-ปิด ด้วย "double quotes" ได้ (เข้าใจว่าถ้าเป็น "single quotes" อาจจะทำให้ดูยาก) โดยเฉพาะการเขียน SQL statements มักจะเขียนด้วยวิธีนี้

$sql = "SELECT `id`, `name` FROM `people` "
     . "WHERE `name`='Fred' OR `name`='Susan'";

การเขียนแบบนี้จะทำให้อ่านง่ายกว่าไม่มีแบบที่ไม่มี apostrophes


  • Variable Substitution - สตริงที่มีตัวแปลด้วย

สตริงที่มีตัวแปลด้วย ให้เขียนแบบนี้ อย่างใดอย่างหนึ่ง

$greeting = "Hello $name, welcome back!";

$greeting = "Hello {$name}, welcome back!";

และเพื่อความเคลียร์ของ code ไม่ควรเขียนแบบนี้

$greeting = "Hello ${name}, welcome back!";

(เพราะ "name" อาจถูก define หรือเซตค่าไว้ได้)


  •  String Concatenation - การเชื่อมสตริง

ข้อมูลสตริงจะต้องเชื่อมด้วย "." และเพื่อให้อ่านง่าย จะต้องมี space ทั้งข้างหน้า และข้างหลัง "." เช่น

$siteName = 'PHP' . ' ' . 'Zealots';

ในการเชื่อมสตริง ด้วย operator "." ถ้าประโยคยาวๆ ก็ต้องมีหลายบรรทัด เพื่อให้อ่านง่าย จะต้องเคาะ space เพื่อให้ "." มาอยู่ใต้เครื่องหมายเท่ากับ "=" เช่น

$sql = "SELECT `id`, `name` FROM `people` "
     . "WHERE `name` = 'Susan' "
     . "ORDER BY `name` ASC ";

  •  การเขียนคำสั่ง SQL

ให้เขียน keyword หรือ คำสั่ง หรือ function เป็นตัวใหญ่ และควรมี apostophy คร่อมชื่อฟิล์ด หรือ ชื่อตาราง เช่น

$sql = "SELECT `id`, `name` FROM `people` "
     . "WHERE `name` = 'Susan' "
     . "ORDER BY `name` ASC ";

 

Array

  • Numerically Indexed Arrays
    $sampleArray = array(1, 2, 3, 'PHP', 'Zealots');
    
    // หรือ ถ้ายาวเกิน 1 บรรทัดก็เขียนเป็น:
    $sampleArray = array(1, 2, 3, 'PHP', 'Zealots',
    $a, $b, $c, 56.44, $d, 500); // หรือ $sampleArray = array( 1, 2, 3, 'PHP', 'Zealots',
    $a, $b, $c, 56.44, $d, 500, );

  • Associative Arrays
    $sampleArray = array('firstKey'  => 'firstValue',
                         'secondKey' => 'secondValue');
    // หรือ 
    $sampleArray = array(
        'firstKey'  => 'firstValue',
        'secondKey' => 'secondValue',
    );
    



ที่มา: http://framework.zend.com/manual/en/coding-standard.coding-style.html
(เขียนยังไม่จบน้ะครับ เดี๋ยววันหลังมาต่อ Foot in Mouth)