Coding Standards php มาตราฐานการเขียน code php ตามแบบ pear

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
modtanoy_pen
PHP Hero Member
PHP Hero Member
โพสต์: 116
ลงทะเบียนเมื่อ: 19/10/2012 4:27 pm

Coding Standards php มาตราฐานการเขียน code php ตามแบบ pear

โพสต์ที่ยังไม่ได้อ่าน โดย modtanoy_pen »

http://pear.php.net/manual/en/standards.php

Coding Standards php คือมาตราฐานในการเขียน code php เริ่มตั้งแต่ tag code การกำหนดการเยื้องและความยาวของบรรทัดที่เขียน code ,การเขียน comments ,โครงสร้างการใช้งาน If,For,Switch,การเขียนฟังก์ชั่น,การเรียกใช้ฟังก์ชั่น,การสร้าง Class ,การสร้างข้อมูล arrays,Header Comment Blocks

PHP Code Tags
เขียนcode php ให้อยู่ใน <?php ?>
ตัวอย่าง

โค้ด: เลือกทั้งหมด

<?php 
//code
?>

แก้ไขล่าสุดโดย modtanoy_pen เมื่อ 26/11/2012 4:24 pm, แก้ไขไปแล้ว 4 ครั้ง.
ภาพประจำตัวสมาชิก
modtanoy_pen
PHP Hero Member
PHP Hero Member
โพสต์: 116
ลงทะเบียนเมื่อ: 19/10/2012 4:27 pm

Re: Coding Standards php (code พื้นฐาน php)

โพสต์ที่ยังไม่ได้อ่าน โดย modtanoy_pen »

Indenting and Line Length (การกำหนดการเยื้องและความยาวของบรรทัด)
ตัวอย่าง

โค้ด: เลือกทั้งหมด

(defun pear/php-mode-init()
  "Set some buffer-local variables."
  (setq case-fold-search t)
  (c-set-offset 'arglist-intro '+)
  (c-set-offset 'arglist-close '0)
)
(add-hook 'php-mode-hook 'pear/php-mode-init)
แก้ไขล่าสุดโดย modtanoy_pen เมื่อ 26/11/2012 2:43 pm, แก้ไขไปแล้ว 3 ครั้ง.
ภาพประจำตัวสมาชิก
modtanoy_pen
PHP Hero Member
PHP Hero Member
โพสต์: 116
ลงทะเบียนเมื่อ: 19/10/2012 4:27 pm

Re: Coding Standards php (code พื้นฐาน php)

โพสต์ที่ยังไม่ได้อ่าน โดย modtanoy_pen »

Comments
การเขียน Comments ใน php ใช้ /*codeหรือข้อความ*/ เป็นการComments ที่ละหลายบรรทัด และ// เพื่อComments ที่ละบรทัด
ตัวอย่าง

โค้ด: เลือกทั้งหมด

<?php 
/* code
    code
    code
*/ 

//code
code//แสดงตัวอย่าง

?>
แก้ไขล่าสุดโดย modtanoy_pen เมื่อ 26/11/2012 2:43 pm, แก้ไขไปแล้ว 2 ครั้ง.
ภาพประจำตัวสมาชิก
modtanoy_pen
PHP Hero Member
PHP Hero Member
โพสต์: 116
ลงทะเบียนเมื่อ: 19/10/2012 4:27 pm

Re: Coding Standards php (code พื้นฐาน php)

โพสต์ที่ยังไม่ได้อ่าน โดย modtanoy_pen »

Control Structures (โครงสร้างการควบคุม)
ตัวอย่างโครงสร้างการใช้ if

โค้ด: เลือกทั้งหมด

<?php
if ((condition1) || (condition2)) {
    action1;
} elseif ((condition3) && (condition4)) {
    action2;
} else {
    defaultaction;
}
?>
ตัวอย่างการใช้ switch

โค้ด: เลือกทั้งหมด

<?php
switch (condition) {
case 1:
    action1;
    break;

case 2:
    action2;
    break;

default:
    defaultaction;
    break;
}
?>
Split long if statements onto several lines (การเขียนเงื่อนไขหลายเงื่อนไขโดยเขียนหลายบรรทัด)
ตัวอย่าง1

โค้ด: เลือกทั้งหมด

<?php
if (($condition1 //เงื่อนไขที่ 1
    || $condition2) //หรือเงื่อนไขที่ 2
    && $condition3 //และเงื่อนไขที่ 3
    && $condition4 //และเงื่อนไขที่ 4
) {
    //code here
}
?>
ตัวอย่างที่ 2

โค้ด: เลือกทั้งหมด

<?php
if (   $condition1 //เงื่อนไขที่1
    || $condition2 //หรือเงื่อนไขที่2
    || $condition3 //หรือเงื่อนไขที่3
) {
    //code here
}
?>
ตัวอย่างที่3

โค้ด: เลือกทั้งหมด

<?php
$is_foo = ($condition1 || $condition2);//กำหนดตัวแปลเพื่อรับค่าของเงื่อนไข
$is_bar = ($condition3 && $condtion4);
if ($is_foo && $is_bar) {
    // ....
}
?>
แก้ไขล่าสุดโดย modtanoy_pen เมื่อ 26/11/2012 2:44 pm, แก้ไขไปแล้ว 2 ครั้ง.
ภาพประจำตัวสมาชิก
modtanoy_pen
PHP Hero Member
PHP Hero Member
โพสต์: 116
ลงทะเบียนเมื่อ: 19/10/2012 4:27 pm

Re: Coding Standards php (code พื้นฐาน php)

โพสต์ที่ยังไม่ได้อ่าน โดย modtanoy_pen »

Including Code

การเรียกไฟล์งานขึ้นมาใช้งาน ด้วยคำสั่ง include_one และ require_once ซึ่งจะเป็นการเรียกใช้ไฟล์งานเพียงครั้งเดียวไม่ต้องเรียกซ้ำ
แก้ไขล่าสุดโดย modtanoy_pen เมื่อ 26/11/2012 2:52 pm, แก้ไขไปแล้ว 2 ครั้ง.
ภาพประจำตัวสมาชิก
modtanoy_pen
PHP Hero Member
PHP Hero Member
โพสต์: 116
ลงทะเบียนเมื่อ: 19/10/2012 4:27 pm

Re: Coding Standards php (code พื้นฐาน php)

โพสต์ที่ยังไม่ได้อ่าน โดย modtanoy_pen »

Arrays
ตัวอย่างการสร้างข้อมูลแบบ array โดยแต่ละค่าจะคั่นด้วย(,)

โค้ด: เลือกทั้งหมด

<?php
$some_array = array(
    'foo'  => 'bar',//แต่ละค่าจะคั่นด้วยเครื่องหมาย(,)
    'spam' => 'ham',
);
?>
// แบบที่สอง

โค้ด: เลือกทั้งหมด

$saom_array =array();
$saom_array['foo']        = 'bar';
$saom_array['spam']    = 'bar';
$saom_array['tree']      = 'bar'; 
แก้ไขล่าสุดโดย modtanoy_pen เมื่อ 26/11/2012 3:08 pm, แก้ไขไปแล้ว 4 ครั้ง.
ภาพประจำตัวสมาชิก
modtanoy_pen
PHP Hero Member
PHP Hero Member
โพสต์: 116
ลงทะเบียนเมื่อ: 19/10/2012 4:27 pm

Re: Coding Standards php (code พื้นฐาน php)

โพสต์ที่ยังไม่ได้อ่าน โดย modtanoy_pen »

Function Definitions
การสร้างฟังก์ชั่น
ตัวอย่าง1 การประกาศฟังก์ชันตามสไตล์ "K & R":

โค้ด: เลือกทั้งหมด

<?php
function fooFunction($arg1, $arg2 = '')
{
    if (condition) {
        statement;
    }
    return $val;
}
?>
ตัวอย่างที่ 2 การประกาศค่าเริ่มต้นไว้ที่ส่วนท้ายและส่งค่ากลับมา

โค้ด: เลือกทั้งหมด

<?php
function connect(&$dsn, $persistent = false)
{
    if (is_array($dsn)) {
        $dsninfo = &$dsn;
    } else {
        $dsninfo = DB::parseDSN($dsn);
    }

    if (!$dsninfo || !$dsninfo['phptype']) {
        return $this->raiseError();
    }

    return true;
}
?>
แก้ไขล่าสุดโดย modtanoy_pen เมื่อ 26/11/2012 3:08 pm, แก้ไขไปแล้ว 4 ครั้ง.
ภาพประจำตัวสมาชิก
modtanoy_pen
PHP Hero Member
PHP Hero Member
โพสต์: 116
ลงทะเบียนเมื่อ: 19/10/2012 4:27 pm

Re: Coding Standards php (code พื้นฐาน php)

โพสต์ที่ยังไม่ได้อ่าน โดย modtanoy_pen »

Function Calls (การเรียกใช้ฟังก์ชั่น)
ตัวอย่าง1
ชื่อฟังก์ชั่นวงเล็บเปิดพารามิเตอร์ตัวแรกคั่นด้วย (,)แต่ละพารามิเตอร์และวงเล็บปิดและปิดด้วย(;)

โค้ด: เลือกทั้งหมด

<?php
$var = foo($bar, $baz, $quux);
?>
ตัวอย่างที่ 2
ชื่อฟังก์ชั่นวงเล็บเปิดพารามิเตอร์วงเล็บปิดและปิดด้วย(;)

โค้ด: เลือกทั้งหมด

<?php
$short         = foo($bar);
$long_variable = foo($baz);
?>
ตัวอย่างที่ 3

โค้ด: เลือกทั้งหมด

<?php
$this->callSomeFunction('param1',     'second',        true);
$this->callSomeFunction('parameter2', 'third',         false);
$this->callSomeFunction('3',          'verrrrrrylong', true);
?>
แก้ไขล่าสุดโดย modtanoy_pen เมื่อ 26/11/2012 2:54 pm, แก้ไขไปแล้ว 2 ครั้ง.
ภาพประจำตัวสมาชิก
modtanoy_pen
PHP Hero Member
PHP Hero Member
โพสต์: 116
ลงทะเบียนเมื่อ: 19/10/2012 4:27 pm

Re: Coding Standards php (code พื้นฐาน php)

โพสต์ที่ยังไม่ได้อ่าน โดย modtanoy_pen »

Class Definitions (การสร้าง class)
ตัวอย่าง รูปแบบการสร้าง class
class ตามด้วยชื่อ class ที่เราจะสร้างปีกกาเปิด({)ตามด้วย code แล้วปีกกาปิด(})

โค้ด: เลือกทั้งหมด

<?php
class Foo_Bar
{

    //... code goes here

}
?>
แก้ไขล่าสุดโดย modtanoy_pen เมื่อ 26/11/2012 2:54 pm, แก้ไขไปแล้ว 4 ครั้ง.
ภาพประจำตัวสมาชิก
modtanoy_pen
PHP Hero Member
PHP Hero Member
โพสต์: 116
ลงทะเบียนเมื่อ: 19/10/2012 4:27 pm

Re: Coding Standards php (code พื้นฐาน php)

โพสต์ที่ยังไม่ได้อ่าน โดย modtanoy_pen »

Header Comment Blocks
คือ Comment ของเอกสารก่อนเข้าส่วนของ โค้ด จริงๆ ซึ่งสามารถ generate ออกมาทำเป็นเอกสารของโปรแกรมได้

โค้ด: เลือกทั้งหมด

<?php

/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */

/**
 * Short description for file
 *
 * Long description for file (if any)...
 *
 * PHP version 5
 *
 * LICENSE: This source file is subject to version 3.01 of the PHP license
 * that is available through the world-wide-web at the following URI:
 * http://www.php.net/license/3_01.txt.  If you did not receive a copy of
 * the PHP License and are unable to obtain it through the web, please
 * send a note to [email protected] so we can mail you a copy immediately.
 *
 * @category   CategoryName
 * @package    PackageName
 * @author     Original Author <[email protected]>
 * @author     Another Author <[email protected]>
 * @copyright  1997-2005 The PHP Group
 * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
 * @version    SVN: $Id$
 * @link       http://pear.php.net/package/PackageName
 * @see        NetOther, Net_Sample::Net_Sample()
 * @since      File available since Release 1.2.0
 * @deprecated File deprecated in Release 2.0.0
 */

/*
* Place includes, constant defines and $_GLOBAL settings here.
* Make sure they have appropriate docblocks to avoid phpDocumentor
* construing they are documented by the page-level docblock.
*/

/**
 * Short description for class
 *
 * Long description for class (if any)...
 *
 * @category   CategoryName
 * @package    PackageName
 * @author     Original Author <[email protected]>
 * @author     Another Author <[email protected]>
 * @copyright  1997-2005 The PHP Group
 * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
 * @version    Release: @package_version@
 * @link       http://pear.php.net/package/PackageName
 * @see        NetOther, Net_Sample::Net_Sample()
 * @since      Class available since Release 1.2.0
 * @deprecated Class deprecated in Release 2.0.0
 */
class Foo_Bar
{
}

?>
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: facebook.com [Crawler] และบุคลทั่วไป 42