สำหรับโปรแกรมเมอร์ภาษา php


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

สำหรับโปรแกรมเมอร์
เพื่อการพัฒนาโปรแกรมให้เป็นไปอย่างราบรื่น และเพื่อให้เกิดปัญหากับลูกค้าหรือโปรแกรมเมอร์ด้วยกันน้อยที่สุด ในกรณีที่มีการช่วยเหลือกันแก้โปรแกรม และเพื่อให้โปรแกรมมีประสิทธิภาพมากที่สุด เราจำเป็นที่จะต้องปฏิบัติตามดังต่อไปนี้

1.ควรตั้งค่าตัวแปร config ของ php บางตัวให้เป็นดังต่อไปนี้
register_globals=Off
short_open_tag=Off
asp_tags=Off
error_reporting=E_ALL
display_errors=On
allow_call_time_pass_reference=Off

2.เรื่องการตั้งชื่อตัวแปรต่างๆ โดยเฉพาะตัวแปรที่เป็น constant ที่เรามักจะ define ไว้ในไฟล์ภาษาของคอมโพเน้นท์เรา ให้ระวังเรื่องการตั้งชื่อซ้ำกับของระบบแมมโบ้ที่มีอยู่แล้ว ถ้าเป็นไปได้ให้เราตั้งชื่อโดยการใช้ prefix ที่เราคิดว่ามันไม่น่าจะไปซ้ำกับของแมมโบ้หรือของคอมโพเน้นท์อื่น หรือ extension ตัวอื่นๆ อย่างเช่น แทนที่เราจะตั้งเป็น _MAY ให้เราตั้งเป็น _LTS_MAY หรือ LTS_MAY เป็นต้น(LTS มาจาก Laithai Suit)

3.ตรงนี้มักจะมีปัญหาในกรณีที่เราสร้างฟังก์ชั่นตอนที่เราสร้างโมดูลและเราทำการสำเนาโมดูล หรือบางทีอาจจะทำคอมโพเน้นท์ให้ใช้ได้ทั้งแมมโบ้และจูมล่า บางครั้งคอมโพเน้นท์นั้นๆ เราอาจจะไปเอาคอมโพเน้นท์ของจูมล่ามาแก้ และมันดันไปเรียกฟังก์ชั่นบางตัวที่แมมโบ้ไม่มี เราก็จึงจำเป็นที่จะต้องไปก๊อปปี้ฟังก์ชั่นนั้นมาด้วย แต่ว่า ถ้าเราไปก๊อปปี้มาเฉยๆ คอมโพเน้นท์ใหม่ที่เราแก้ ก็อาจจะทำงานผิดพลาดในกรณีที่เรานำไปใช้กับจูมล่า เพราะว่าชื่อฟังก์ชั่นมันซ้ำกัน ถ้าจะเปลี่ยนชื่อฟังก์ชั่นซะใหม่ ก็จะทำให้ขนาดเนื้อที่ในฮาร์ดดิสก์เพิ่มขึ้น(ถึงแม้จะไม่มากก็ตาม แต่ก็สำคัญ เพราะเราจะต้องทำให้งานของเรามีขนาดเล็กที่สุด แต่ประสิทธิภาพมากที่สุด) เพราะฉะนั้นวิธีแก้ปัญหาก็ง่ายมาก เวลาเราจะสร้างฟังก์ชั่นให้เราใช้ฟังก์ชั่น function_exists() ช่วยในการตรวจสอบว่าชื่อฟังก์ชั่นนี้มีอยู่หรือเปล่า ถ้ามีแล้ว ก็ไม่จำเป็นที่จะต้องสร้างฟังก์ชั่นใหม่ ตัวอย่างการใช้ ให้ใช้ดังนี้
if(!function_exists(“function_name”)) {

         function function_name( $param1, $param2, ....) {
                ........
         }
}
เราสามารถเปลี่ยน function_name เป็นชื่อที่เราต้องการได้

4.ใช้ฟังก์ชั่น include_once() หรือ require_once() แทน include() หรือ require() อันนี้จะเป็นปัญหาเรื่องการประกาศฟังก์ชั่นซ้ำเช่นกัน หรือบางทีอาจจะเป็นการเรียกโปรเซสซ้ำๆ หรือประกาศตัวแปรซ้ำ ซึ่งเราไม่ต้องการให้มันซ้ำ เราต้องการจะเรียกมันแค่ครั้งเดียว อย่างเช่นการเรียกไฟล์ภาษาเป็นต้น ถ้าเราใช้ include_once() หรือ require_once() มันจะตรวจสอบเรื่องของการซ้ำให้เรา ถ้าเราเรียกใช้ไฟล์นี้ครั้งที่สอง หรือสาม สี่ ห้า ครั้งต่อๆไป จะไม่มีผล จะมีผลแค่ครั้งแรกครั้งเดียวเท่านั้น

5.สำหรับโปรแกรมเมอร์ที่พัฒนา extensions ของแมมโบ้หรือจูมล่าให้เปิดโหมด debug ของระบบด้วย วิธีการคือล็อกอินเข้าด้านหลัง เข้าไปที่การตั้งค่าคอนฟิกหลัก หรือ Global Configuration ที่แท็บแรกเลย ให้เปิดโหมด ดีบั๊ก หรือแก้ไขข้อผิดพลาด โดยให้เลือกเป็นใช่แล้วกดบันทึก

6......ยังนึกไม่ออก

ป.ล.ในกรณีที่ทำตามคำแนะนำต่างๆ แล้วเกิดมีข้อความ error หรือ warning แสดงออกมาให้เราคลีนให้หมด(ไม่ใช่โดยการไปทำในสิ่งที่ตรงกันข้ามกับที่ผมบอกนะ) โดยการแก้โปรแกรมให้อยู่ในรูป well-form ที่สุด โดยโค้ดตรงไหนที่ผิดพลาดก็แก้ให้ถูกต้องซะ
คำคมทิ้งท้าย: ทำโปรแกรมให้แข็งแรงต่อสู้กับเซิร์ฟเวอร์ที่หลากหลาย ดีกว่าทำโปรแกรมให้ทำงานได้แค่เซิร์ฟเวอร์เพียงเซิร์ฟเวอร์เดียว
จบข่าว พลทหาร สุริยา แก้วมุงเมือง รายงาน

หมายเลขบันทึก: 184115เขียนเมื่อ 23 พฤษภาคม 2008 15:55 น. ()แก้ไขเมื่อ 8 มิถุนายน 2012 19:52 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (1)
พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท