Post archive
Tag: class
-
OOP ซีรี่ย์ – Inheritance in PHP
Inheritance หรือเรียกอย่างไทยๆว่าการสืบทอด การสืบทอดมันไม่ได้มีอะไรใกล้เคียงกับตั๊กแตนทอดหรือกล้วยทอด หรืออะไรอย่างอื่นที่ใช้น้ำมันเป็นส่วนประกอบกรรมวิธี พอกล่าวถึงเรื่องน้ำมัน ก็อยากจะบอกว่าน้ำมันปาล์มไว้ใช้ทอด น้ำมันถั่วเหลืองไว้ใช้ผัด ไปเรื่อย… การสืบทอดใน OOP นั้นจะคล้ายๆกับการก้อปปี้โค้ดเดิมแล้วเอามาเขียนโค้ดต่อเพิ่มเข้าไป ที่ผมใช้คำว่าคล้าย เพราะว่าการสืบทอดนั้นมันเจ๋งกว่าการก้อปปี้ สมมติว่าผมมีคลาสอยู่ตัวหนึ่ง ทำงานได้ดี View the code on Gist. คลาสตัวนี้เอาไปใช้ในโค้ดหลายๆที่ นานไปๆก็จำไม่ได้แล้วว่าเอาไปใช้ตรงไหนบ้าง แต่ไม่เป็นไรเพราะระบบยังใช้งานได้ดี วันหนึ่งเราอยากจะได้ฟังก์ชั่นสำหรับดึงค่า idcard ออกมา แต่มันก็ใช้อยู่ที่เดียวเท่านั้น ในโค้ดใหม่ ทางเลือกที่เรามีอยู่ตอนนี้ก็คือ ก้อปปี้คลาสนี้ทั้งคลาสเลยแล้วเปลี่ยนชื่อเสียใหม่แล้วเพิ่มโค้ด / หรือแก้คลาสเดิมเลยเพิ่มโค้ดใหม่เข้าไป 2 ทางเลือกที่ให้มาถ้าเป็นระบบจริงๆมีเสียวกันบ้าง เพราะการแก้โค้ดเดิม ไม่รู้ว่ามันจะไปกระทบกับของเก่าที่นำไปใช้บ้างหรือเปล่า หากคุณเขียนโค้ดแบบ functional นะ ไม่ใช้ class นะ ทางเลือกคุณมี 2 ทางนั้นแหละ แต่คลาสเขาออกแบบมาให้มันรองรับการสืบทอด เราเขียนคลาสใหม่สืบทอดจากคลาสเก่าแล้วเติมโค้ดใหม่เข้าไป ดอตอยอ ดูตัวอย่าง View the code on Gist. คลาส […]
READ MORE -
OOP ซีรี่ย์ – Classes and objects
เมื่อเราย่างเท้าเข้าสู่โลกของการเขียนโปรแกรมเชิงวัตถุ (อูววววว) คำที่เราจะได้ยินจนชำนาญคือคำว่า class และ object คลาสก็คือโค้ดก้อนหนึ่งที่ถูกหุ้มด้วยคำว่า class View the code on Gist. ถ้าจะอธิบายตามหลักการก็คือ ให้เราจินตนาการทุกอย่างที่จะเกิดขึ้นในระบบเราเป็นคน เช่น ถ้าหากในระบบเราจะต้องมีอะไรที่ทำเกี่ยวข้องกับไฟล์ เราก็สร้างคนๆหนึ่งขึ้นมาในจินตนการชื่อว่า ไอ้ฟาย ไอ้ฟายนี่จะทำหน้าที่ทุกอย่างที่เกี่ยวข้องกับไฟล์ ใครอยากสร้างไฟล์ให้เรียกไอ้ฟาย ใครอยากได้พาธของไฟล์ถามไอ้ฟาย ซึ่งถ้าหากมีคำถามว่า แล้วเราจะให้ไอ้ฟายมันทำอะไรได้บ้าง ตอบได้อย่างเดียวเลย จะไปรู้เรอะ ในงานเขียนโปรแกรมคุณคือพระเจ้าที่จะสร้างให้คนๆนั้นทำไอ้นี่ได้ ทำไอ้นี่ไม่ได้ แล้วพระเจ้าดูจากไหนว่าจะต้องให้ไอ้ฟายมันทำอะไรได้บ้าง ก็ดูเอาจากว่าโปรแกรมมันต้องการอะไรบ้าง ถ้าโปรแกรมที่เขียนไม่ได้มีการอัปโหลดไฟล์ ก็ไม่ต้องเขียนโค้ดให้ไอ้ฟายมันอัปโหลดได้ ไม่ต้อง เขียนเผื่ออนาคตได้มั้ย! ไม่ต้อง คำว่าเผื่ออนาคตคือขยะ เอาเวลาไปนั่งเกาไข่เถอะ แล้ว object คืออะไร? object คือตัวแปรที่ใช้คำสั่ง new มาจาก class ให้คิดเสียว่า class มันคือต้นแบบเอาไปใช้ตรงๆไม่ได้ (ถามว่าทำไมไม่ได้ เอ้า ก็คนออกแบบภาษาเขากำหนดมางั้น เรามันผู้ตาม ทำตัวเชื่องๆ) ต้องก้อปปี้ไปใช้ผ่านคำสั่ง new […]
READ MORE -
jQuery menu
การเขียนเว็บแอพพลิเคชั่น สิ่งหนึ่งที่หลีกเลี่ยงไม่ค่อยจะพ้น ก็คือเมนู การสร้างเมนูนั้นโดยปกติแล้วเราจะใช้เลเยอร์ในการสร้าง (ถ้าสร้างเองนะ) และก็มักจะติดปัญหาเรื่อง เมนูที่สร้างไปอยู่ใต้ลิสต์บ้อก มันไม่ยอมอยู่ข้างบน และอีกปัญหาหนึ่งก็คือใช้เวลาในการทำมาก อีกทั้งไม่ค่อยจะสวย วันนี้ผมเลยมาแนะนำ ปลั๊กอินของ jQuery ที่ใช้สำหรับสร้างเมนูโดยเฉพาะ ทั้งใช้ง่าย สวยงาม และไม่ต้องเสียเวลานานๆในการเขียนเอง
READ MORE -
OOP มันไม่ใช่ยักษ์
เมื่อครั้งที่ผมเพิ่งศึกษาการเขียนโปรแกรม และได้ยินคำว่า OOP ออบเจ็กโอเรียลเต็ดโปรแกรมมิ่ง การเขียนโปรแกรมเชิงวัตถุ มันเป็นอะไรที่ให้ความรู้สึกว่ามันห่างไกลตัวเราเสียเหลือเกิน ยากแก่การทำความเข้าใจ มันเป็นวัตถุที่จับต้องได้ ไม่ใช่แค่ตัวหนังสือเรียงๆกันมา
READ MORE -
6 PHP classes พลาดแล้วจะเสียใจไปทั้งชาติ
ในโลกของ php นั้นช่างเป็นโลกแห่งการเอื้อเฟื้อเผื่อแผ่โดยแท้ มีโค้ดดีๆแจกให้ใช้งานเยอะแยะ ถ้าเรานั่งเขียนเองนะครับ คาดว่าต้องใช้เวลาเป็นเดือนๆ กว่าจะเสร็จสักคลาส เชื่อมั้ยครับว่า คลาสหลายๆตัว ผมเห็นแล้วอึ้ง เมื่อนำมันมาใช้นี่ ช่วยผ่อนแรงเราได้มากเลยทีเดียว และอีกอย่างหนึ่งก็คือ คลาสเหล่านั้น โปรแกรมเมอร์เขาพัฒนาอยู่ตลอด ซึ่งนั่นหมายความว่า มันเหมือนมีคนช่วยเขียนโค้ดเรา มาดูกันดีกว่าครับ
READ MORE -
ตัวหนังสือวิ่งมาราธอน
เมื่อก่อนตอนทำเว็บใหม่ๆ แท็กที่มักจะเป็นที่นิยมใช้กันบ่อยๆ คือ <marquee> ไว้ทำตัวหนังสือวิ่ง ถึงแม้ว่ามันจะวิ่งเหมือนคนเป็นโรคโปลิโอ คือ วิ่งกระตุก งึกๆงักๆ แต่ก็ยังดีกว่าไม่มีอะไรเคลื่อนไหวบนหน้าจอเอาเสียเลย เดี๋ยวนี้ไม่ค่อยเห็นมีคนใช้ และพูดถึงกันน้อยมาก อาจจะเนื่องจากมีแอนิเมชั่นในรูปแบบอื่นๆ ให้เล่นเยอะแยะมากมาย <marquee> เลยถูกลืมจากสารบบ
READ MORE -
คำสั่ง wrapAll() ของ jquery
คำสั่งนี้จะทำหน้าที่เหมือนกันกับคำสั่ง wrap() จะต่างกันก็ตรงที่ว่า คำสั่ง wrap() นั้นจะ wrap อีลิเม้นท์ทุกๆตัวที่เจอ แต่ wrapAll() จะ wrap แค่ครั้งเดียวเท่านั้น ถ้า selector อยู่กันอย่างกระจัดกระจายบนเพจ มันจะย้ายทุกตัวมาอยู่ติดกันแล้ว wrap ทั้งหมด ทีเดียว wrapAll(wrapper) wrapper :(string|selector) string จะต้องเป็นแท็ก html ที่มีทั้งแท็กเปิดและแท็กปิด “<i></i>” ฟังก์ชั่นนี้จะนำเอาพารามิเตอร์ที่ส่งเข้าไป ไปล้อม selector ที่เรียกใช้ฟังก์ชั่น โดยแบ่งออกเป็น 2 กรณี กรณีที่ส่งแท็กเปิดปิดของ html (string) เข้าไป มันจะนำแท็กเปิดและปิด ไปล้อม selector ที่เรียกใช้ แต่ถ้าส่ง selector เข้าไปในฟังก์ชั่น มันจะก้อปปี้ selector ที่ส่งเข้าไป ไปแทนที่ selector ที่เรียกใช้ ตัวอย่างการใช้งาน Live Demo
READ MORE -
วิธีใช้งาน jTip – The Jquery Tool Tip
Live Demo ผมได้เคยแนะนำ jquery plugin ตัวนี้ไปทีนึงแล้ว jquery-tooltips มาคราวนี้ผมจะแสดงวิธีการนำ jTip ไปใช้งาน
READ MORE