มาตกลงกันก่อน

ทำงานกับ PHP

ในการทำงานกับ PHP สามารถใช้เพียง Text Editor ต่าง ๆ (แต่ต้องเป็น Plain Text Editor เป็นพวก Word Processor อย่าง MS Office Word อันนี้ใช้ไม่ได้) แต่ถ้ามี Syntax Hilighter ก็จะช่วยให้มองโค้ดได้ง่ายขึ้น อย่างเช่น Notepad2-Mod, Notepad++, gEdit (GNOME), Kate (KDE) หรือ Vim (เว็บเรามีสอนใช้ Vim ด้วยนะ) เป็นต้น

แต่ถ้าต้องการความสามารถเพิ่มขึ้นอย่างการจัดการโค้ด และ Auto Complete ก็มีโปรแกรมที่เป็น IDE อย่าง eclipse+PDT หรือ Netbean อันนี้ขึ้นอยู่กับความชอบ ความต้องการของแต่ละคน

นอกจากโปรแกรมฟรี และโปรแกรมโอเพนซอร์สที่พูดมาข้างต้น ยังมีโปรแกรมที่เป็นลิขสิทธิ์อีกหลายโปรแกรม ซึ่งมีความสามารถแตกต่างกันไปให้เลือกอีกมากมาย

เมื่อมีเครื่องมือเขียนโค้ดแล้ว ก็ต้องมีที่ไว้รันโค้ด อาจจะเป็นโฮสต์ที่รองรับ PHP ที่มีอยู่แล้ว หรือจะทดสอบบนเครื่องตัวเองก็มีโปรแกรมเว็บเซิฟเวอร์อยู่

บน Windows สามารถใช้ AppServ หรือ XAMPP (Portable) หรือ Zend Server CE

ส่วนบน ลินุกซ์ ให้ติดตั้ง Apache, PHP, MySQL Server (สำหรับฐานข้อมูล) (โดยทั่วไปจะเรียกรวมว่า LAMP) ผ่านทาง Package Manager ได้โดยตรง (สะดวกซะ)

ถ้าบน Mac OSX ก็มี MAMP

ถ้าใครใช้ Windows แต่อยากได้สภาพแวดล้อมเป็นลินุกซ์ สามารถที่จะติดตั้ง VM อย่าง Virtual Box แล้วติดตั้งลินุกซ์ (แบบไม่มี GUI) ตั้งค่านิดหน่อย แล้วใช้เป็น Web Server เพื่อทดสอบก็ได้เช่นกัน

มาตรฐานการเขียนโค้ด

การเขียนโค้ดตามภาษาต่าง ๆ จะมีข้อบังคับ ซึ่งทุกคนต้องปฏิบัติตาม ถ้าไม่ปฏิบัติตามโค้ดจะรันไม่ผ่าน และมาตรฐานการเขียนโค้ด ซึ่งถึงไม่ปฏิบัติตามโค้ดก็ยังทำงานได้ตามปกติ

มาตรฐานโค้ดมีไว้เพื่อให้การอ่านโค้ด และนักพัฒนาทำงานร่วมกันได้ง่ายขึ้น แต่ทั้งนี้ทั้งนั้น มาตรฐานของแต่ละที่อาจจะไม่เหมือนกัน อันนี้ขึ้นอยู่กับกลุ่ม และบริษัทที่เราอยู่ เช่น มาตรฐานโค้ดของ Drupal จะไม่เหมือนกับของ WordPress และทั้งคู่ก็ไม่ตรงกับมาตรฐานของ PHP

การที่เราจะยึดมาตรฐานใดในการทำงาน ก็ต้องดูว่า เราทำงานกับกลุ่มไหน ก็ให้ยึดมาตรฐานของกลุ่มนั้น ถ้าในบริษัทก็ควรจะมีข้อตกลงของบริษัทนั้น ๆ โค้ดที่ได้จะเหมือน ๆ กันทั้งหมด แต่ถ้าตั้งกลุ่มขึ้นมาเอง ก็หาข้อตกลงกันในกลุ่มเสีย ส่วนทำงานคนเดียว ก็ต้องใช้มาตรฐานเดียวกันในทุก ๆ โปรเจ็ค

แต่ก็ใช่ว่า มันจะเปลี่ยนแปลงไม่ได้เลย วันเวลาเปลี่ยนไป อาจจะถึงเวลาเปลี่ยนมาตรฐานกันบ้าง ก็ไม่แปลกอะไร ยึดหลัก แต่อย่ายึดติด

เปิด/ปิดเท็กสำหรับ PHP

ก่อนจะเขียน PHP จะต้องมีแท็กเปิดก่อน ซึ่งที่นิยมกันจะมี <?php และ <? ส่วนตัวแนะนำให้ใช้แบบเต็มคือ <?php

ถ้าต้องการปิดแท็กก็ใช้ ?> แต่ถ้าไฟล์นั้นทั้งไฟล์เป็น PHP หรือ โค้ดส่วนท้ายไฟล์เป็น PHP แนะนำให้ไม่ต้องใส่ ?> ในส่วนท้ายไฟล์ เพราะหากมี ช่องว่าง ไม่ว่าจะเป็น แท็บ วรรค หรือบรรทัดเปล่า ๆ เกินมา อาจจะสร้างปัญหา เช่น

  • เกิดปัญหา header already sent แต่ PHP รุ่นใหม่ ๆ แก้ปัญหานี้ได้แล้ว
  • ถ้าข้อมูลที่ส่งกลับเป็น JSON ช่องว่างที่เกินมา อาจจะทำให้ AJAX ทำงานผิดพลาด
  • หากเป็นส่วนของการจัดการไฟล์ที่ให้ดาวโหลด อาจจะทำให้ไฟล์อันนั้นเกิดปัญหาได้

ทั้งนี้ทั้งนั้น สิ่งเหล่านี้ขึ้นอยู่กับปัจจัยหลายอย่าง ทั้งเซิฟเวอร์ เบราว์เซอร์ รวมทั้งรุ่นของ PHP ที่ใช้ แต่ถือว่าเป็น หลักในการเขียนโค้ด PHP ที่ดี (แนะนำให้ทำแบบนี้ แต่จะไม่ทำตามก็ได้ ประมาณนั้น)

    <?php inline_function(); ?>
    
    <?php
        multi_line();
        // with comment
    ?>
    
    <?php
        // end of file
        print_notice();
        print_copyright();
        // omit close tag      

คอมเมนต์

รูปแบบการคอมเม้นต์โคดใน PHP ไม่ต่างกับภาษาอื่นมากนัก

    <?php

    // ใช้คอมเมนต์บรรทัดเดียว
    # ใช้คอมเมนต์บรรทัดเดียว (ไม่ค่อยนิยมสักเท่าไหร่...)
    /* ใช้คอมเมนต์แบบ
    หลายบรรทัด */

นอกจากนี้ยังมี PHPDoc ที่ใช้ในการอธิบายการทำงานของ Class/Function จะใช้ /** */ การเขียน PHPDoc จะช่วยให้โปรแกรม IDE สามารถดึงข้อมูลส่วนนี้ไปแสดงเวลาเรียกใช้ฟังชั่นได้ด้วย

    <?php

    /**
     * Print mood in Valentine's day.
     */
    function valentine_mood( $status )
    {
        if ( 'single' != $status )
        {
            echo 'Happy Happy!';
        }
    }

ถ้าต้องการคอมเมนต์โค้ดที่ยาว ๆ ซับซ้อน เพื่อการทดสอบการทำงาน ไม่แนะนำให้ใช้รูปแบบการคอมเมนต์แบบด้านบน แต่ให้ใช้ if (0) { ส่วนที่ต้องการคอมเมนต์ } แทน เพราะถ้ามีคอมเมนต์อยู่ในโค้ดก็ไม่ต้องสั่งคอมเมนต์หลาย ๆ รอบ

    <?php

    $love_word = 'I love you.';
    $third_hand = 'rich, gentle and handsome guy';

    if (0) { // test start, if no third hand

    // Third hand
    if ( !empty( $third_hand ) )
    {
        // Change mind
        $love_word = 'Sorry, I love him.';
    }

    } // test end, if no third hand

    echo $love_word;

(ตัวอย่างไม่ซับซ้อนเท่าไหร่เลย…)

blog comments powered by Disqus