-
OOP ซีรี่ย์ – Chaining methods
Chaining-methods จะว่ามันเป็นคุณสมบัติอันโดดเด่นของ OOP ก็ไม่ใช่ซะทีเดียว มันเป็นแค่เทคนิค ถ้าท่านเคยใช้พวกเฟรมเวิร์คมาก่อนท่านจะคุ้นกับ ตอยอ ตัวอย่างนี้มาก View the code on Gist. การเรียกเมธอดต่อๆกันเป็นแบบลูกโซ่อย่างนี้ เห็นได้ทั่วไปเมื่อท่านใช้เฟรมเวิร์ค มันดูง่าย มันดูเป็นระเบียบ มันดูล้ำ ผมเขียน laravel มาก่อน เห็นการเขียนลักษณะนี้จนชิน และผมก็เขียนอย่างนี้เหมือนกัน แต่ไม่เคยตั้งคำถามว่าไอ้คนทำเฟรมเวิร์คมันทำได้อย่างไรให้เราสามารถเรียกฟังก์ชั่นต่อๆกันแบบนี้ มีเฉลย ง่ายๆกากๆเลย ดูในโค้ดตรงคำสั่ง return มัน return $this; ซึ่งมันจะคืนค่ากลับไปเป็น object ตัวมันเอง เพราะฉะนั้นมันก็สามารถเรียกฟังก์ชั่นอื่นต่อๆไปได้ View the code on Gist. อ๋อ อย่างนี้นี่เอง
READ MORE -
OOP ซีรี่ย์ – The $this keyword
สั้นๆง่ายๆ คำว่า $this นี่ไว้ใช้สำหรับเรียกฟังก์ชั่นหรือตัวแปรภายในคลาส ดอตอยอ ดูตัวอย่าง View the code on Gist. แค่นี้แหละ ไม่มีคำอธิบายมากกว่านี้ เพราะหน้าที่มันมีแค่นี้ ถามว่าทำไมไม่เรียกมันตรงๆ คือไม่ต้องมี $this-> มาคั่นข้างหน้าน่ะ? จากคำอธิบายที่อ่านๆมา เขาบอกว่า เอาคำว่า $this-> มาคั่นหน้าฟังก์ชั่นหรือตัวแปรสักหน่อย เพื่อจะได้สังเกตุง่ายๆว่า เนี่ยตัวแปรนี้มันอยู่ในคลาสนี่แหละ เนี่ยฟังก์ชั่นนี้มันอยู่ในคลาสนี่แหละ ไม่ต้องไปหาไกล มันบอก scope พี่ ซาโขบบบบบบ ใจ๋ ผมว่านะถ้าเขาจะทำให้ไม่ต้องมี $this-> เขาก็น่าจะทำได้นะ ตอนสร้างภาษา แต่จากเหตุผลที่เขาให้มา ผมยอมรับได้นะ ที่บอกว่าเพื่อให้เราหาฟังก์ชั่นได้ง่ายขึ้น เพราะรุ้ว่ามันอยู่ในคลาสนี้ ผมให้ผ่าน คุณลองนึกถึงภาพระบบใหญ่ๆที่มัน include ไฟล์เข้ามาทีเป็นสิบ หาฟังก์ชั่นกันมึน ว่ามันมาจากไฟล์ไหน เอาล่ะมีข้อสังเกตให้สังเกตุ View the code on Gist. ตัวแปรเมื่อถูกเรียกด้วย $this จะไม่มี […]
READ MORE -
OOP ซีรี่ย์ – Classes and objects
เมื่อเราย่างเท้าเข้าสู่โลกของการเขียนโปรแกรมเชิงวัตถุ (อูววววว) คำที่เราจะได้ยินจนชำนาญคือคำว่า class และ object คลาสก็คือโค้ดก้อนหนึ่งที่ถูกหุ้มด้วยคำว่า class View the code on Gist. ถ้าจะอธิบายตามหลักการก็คือ ให้เราจินตนาการทุกอย่างที่จะเกิดขึ้นในระบบเราเป็นคน เช่น ถ้าหากในระบบเราจะต้องมีอะไรที่ทำเกี่ยวข้องกับไฟล์ เราก็สร้างคนๆหนึ่งขึ้นมาในจินตนการชื่อว่า ไอ้ฟาย ไอ้ฟายนี่จะทำหน้าที่ทุกอย่างที่เกี่ยวข้องกับไฟล์ ใครอยากสร้างไฟล์ให้เรียกไอ้ฟาย ใครอยากได้พาธของไฟล์ถามไอ้ฟาย ซึ่งถ้าหากมีคำถามว่า แล้วเราจะให้ไอ้ฟายมันทำอะไรได้บ้าง ตอบได้อย่างเดียวเลย จะไปรู้เรอะ ในงานเขียนโปรแกรมคุณคือพระเจ้าที่จะสร้างให้คนๆนั้นทำไอ้นี่ได้ ทำไอ้นี่ไม่ได้ แล้วพระเจ้าดูจากไหนว่าจะต้องให้ไอ้ฟายมันทำอะไรได้บ้าง ก็ดูเอาจากว่าโปรแกรมมันต้องการอะไรบ้าง ถ้าโปรแกรมที่เขียนไม่ได้มีการอัปโหลดไฟล์ ก็ไม่ต้องเขียนโค้ดให้ไอ้ฟายมันอัปโหลดได้ ไม่ต้อง เขียนเผื่ออนาคตได้มั้ย! ไม่ต้อง คำว่าเผื่ออนาคตคือขยะ เอาเวลาไปนั่งเกาไข่เถอะ แล้ว object คืออะไร? object คือตัวแปรที่ใช้คำสั่ง new มาจาก class ให้คิดเสียว่า class มันคือต้นแบบเอาไปใช้ตรงๆไม่ได้ (ถามว่าทำไมไม่ได้ เอ้า ก็คนออกแบบภาษาเขากำหนดมางั้น เรามันผู้ตาม ทำตัวเชื่องๆ) ต้องก้อปปี้ไปใช้ผ่านคำสั่ง new […]
READ MORE -
OOP ซีรี่ย์
นับจากบทความบทนี้ไปผมจะเขียนเรื่อง OOP ให้อ่านซึ่งได้รับแรงบันดาลใจมาจาก http://phpenthusiast.com/object-oriented-php-tutorials เขาเขียนอธิบายเรื่องราวของ OOP ได้อ่านง่าย เลยคิดว่า กูเอามั่ง หัวข้อที่จะเขียนทั้งหมดมีอยู่ตามนี้ หากใครเข้ามาอ่านแรกๆมันจะไม่มีลิ้งก์นะครับ ต่อเมื่อผมเขียนเรื่องราวนั้นๆแล้ว จะมาแก้หน้านี้แล้วทำลิ้งก์แต่ละหัวข้อไปยังเนื้อหา Classes and objects The $this keyword Chaining methods & properties Public vs. Private Magic methods Inheritance in PHP Abstract classes & methods Interfaces Polymorphism Type hinting Static methods & properties Namespace Trait มี 2 หัวข้อสุดท้ายที่ในลิ้งก์นั้นไม่มี แต่ผมเพิ่มเข้ามา เพราะว่ามันก็มีอยู่ใน OOP ของ PHP ทีนี้ก่อนอื่นเรามาดูกันก่อนซิว่า ทำไมโลกนี้มันถึงต้องมี OOP […]
READ MORE -
ติดตั้ง moodle แล้วเออเร่อฐานข้อมูล mysql – version 5.5.30 is required and you are running 5.5.5.10.1.25
ไม่เข้าใจว่าทำไมมันต้องเออเร่อบอกว่าฐานข้อมูลของเราใหม่กว่า แต่วิธีการแก้ปัญหานี้ไม่ต้องอัปเกรดฐานข้อมูลอะไรนะครับ แค่ แก้ไฟล์ config.php ระบุตรง database ให้เป็น “mariadb” แค่นี้ก็หาย อ้างอิง : https://moodle.org/mod/forum/discuss.php?d=330272
READ MORE -
เพราะชีวิตไม่ได้มีแค่เรื่องเขียนโปรแกรม
ผมฝึกภาษาอังกฤษโดยใช้ youtube
ตอนที่ผมอยู่บ้าน ไม่ได้ฝึกภาษาอังกฤษกับฝรั่งตัวเป็นๆ ผมก็ได้อาศัย youtube เป็นเครื่องมือสำคัญ
READ MORE -
เพราะชีวิตไม่ได้มีแค่เรื่องเขียนโปรแกรม
คนล้อที่สวนจตุจักร
ผมคิดถึงคำพูดของพระพุทธเจ้าอยู่คำพูดหนึ่ง
“อย่าทำตัวเอง ให้เป็นศัตรูของตัวเอง”
READ MORE -
Laravel ตอนที่ 9 HTTP Verb
http verb คำนี้เราอาจจะไม่คุ้นเคย แต่อันที่จริงแล้วเราใช้มันบ่อยมาก เราใช้มันในนาม method ของฟอร์ม ใช่แล้วครับ มันคือ GET, POST เรารู้จักอยู่ 2 ตัว แต่มันไม่ได้มีแค่ 2 นะครับ มันมีมากกว่านั้น และ Laravel ก็ใช้มันซะคุ้ม อ่านรายละเอียดด้านใน
READ MORE -
บางครั้งเราก็ทำให้ชีวิตเรายากเอง
ฟังก์ชั่น str_pad เป็นฟังก์ชั่นที่ถูกสร้างมาเพื่องานลักษณะ เติมตัวอักษรเข้าไปข้างหน้าตัวอักษร เพื่อให้ตัวอักษรครบจำนวนที่ต้องการ
READ MORE -
Laravel ตอนที่ 8 ไดอะแกรมการทำงานของ Laravel
เพื่อเป็นการทำความเข้าใจว่า Laravel นั้นมันโหลดไฟล์ขึ้นมาทำงานอย่างไร และโครงสร้างแบบ MVC มันถูกเก็บไว้อย่างไร
READ MORE

Beeanca
Modern Blogging Template