WordPress และการเขียนโปรแกรมเชิงวัตถุ – ภาพรวม

เผยแพร่แล้ว: 2021-04-20

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

 <?php if ( have_posts() ) { while ( have_posts() ) { the_post(); // // Post Content here // } // end while } // end if ?>

ในการวนรอบ คุณต้องตรวจสอบก่อนว่าคุณมีโพสต์ที่ตรงกับคิวรีที่กำลังทำงานอยู่หรือไม่ และหากมี คุณจะเริ่มวนซ้ำในโพสต์ด้วยลูป while เช่นเดียวกับทุกฟังก์ชันที่กำหนดเองที่คุณจะแทรกลงในไฟล์ functions.php

ในบทความนี้ เราจะเปลี่ยนจากขั้นตอนการเขียนโปรแกรมและดูรูปแบบของการเขียนโปรแกรมที่เรียกว่า Object-Oriented Programming (OOP) เราจะตรวจสอบว่าสิ่งนี้แตกต่างจากที่คุณใช้จนถึงรูปแบบการเขียนโปรแกรมอย่างไร และดูข้อดีบางประการของมัน แต่ที่สำคัญที่สุด เราจะอธิบายว่าแนวคิดเชิงวัตถุทำงานอย่างไรในสภาพแวดล้อมของ WordPress และความสัมพันธ์ระหว่างกัน

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

ปัญหา

WordPress เองได้ผลักดันให้คุณคิดอย่างเป็นขั้นตอนแล้ว และแม้ว่า WordPress จะใช้อ็อบเจ็กต์ PHP ตลอดเวลา แต่ก็ไม่ได้ติดตามว่า WordPress นั้นเป็นแบบเชิงวัตถุ นี่เป็นการตีความผิดทั่วไปเกี่ยวกับ OOP และเหตุผลที่หลายคนเชื่อว่า WordPress เป็นแบบ Object-Oriented แม้ว่าจะไม่ใช่ก็ตาม

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

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

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

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

การเขียนโปรแกรมเชิงวัตถุช่วยแก้ปัญหาได้อย่างไร

การเขียนโปรแกรมเชิงวัตถุมีสองแนวคิดที่สำคัญ: Classes และ Objects

คลาสเป็นเทมเพลตที่ใช้สร้างอ็อบเจกต์เป็นหลัก แต่ละอ็อบเจ็กต์มีวิธีการและชุดคุณสมบัติของตัวเอง และค่าของคุณสมบัติเหล่านั้นอาจแตกต่างกันไป

ดังนั้นก่อนที่จะก้าวไปข้างหน้า สิ่งสำคัญคือต้องแน่ใจว่าเราเข้าใจว่า Object คืออะไร ลองแยกประโยคง่ายๆ เป็นตัวอย่าง:

'ฉันกินแอปเปิ้ลเขียว'

Apple คือ Object สีเขียวคือสีของ Object (คุณสมบัติของ Object) และกริยา 'eat' คือวิธีการ (ฟังก์ชัน)

คลาสกำหนดคุณสมบัติและพฤติกรรมของวัตถุทั้งหมดที่ใช้ การแก้ปัญหาด้วย OOP ทำได้โดยการรวม 'อิฐ' ของการเขียนโปรแกรมเหล่านี้เข้าด้วยกันอย่างถูกวิธี

ก่อนดำดิ่ง ขั้นตอนแรกที่สำคัญคือต้องใช้เวลาในการออกแบบโซลูชันที่คุณเสนอ โดยพื้นฐานแล้ว สิ่งที่คุณต้องทำคือ:

  1. กำหนดปัญหาและสิ่งที่ปลั๊กอินควรทำเพื่อแก้ไข
  2. อธิบายคลาสและความสัมพันธ์ตลอดจนปฏิสัมพันธ์ระหว่างอ็อบเจกต์
  3. เปลี่ยนทุกอย่างให้เป็นโค้ด
  4. ทบทวนและทดสอบโครงการ

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

ในบทความถัดไปที่เกี่ยวข้องกับ OOP เราจะสาธิตตัวอย่างง่ายๆ ที่จะทำให้ทฤษฎีทั้งหมดข้างต้นเป็นจริง

คุณสมบัติของการเขียนโปรแกรมเชิงวัตถุ

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

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

ประการแรก การทำงานที่จำกัด (เช่น การต้มน้ำ) หมายความว่าระบบทั้งแข็งแกร่งและปลอดภัยยิ่งขึ้น ชุดคุณลักษณะที่จำกัดและการจัดหาเพียงปุ่ม 'เปิด/ปิด' หมายความว่า ในฐานะผู้ใช้ เราไม่สามารถเข้าใกล้กลไกของหม้อไอน้ำได้ทุกที่ โดยค่าเริ่มต้น หมายความว่ามีข้อผิดพลาดน้อยกว่าและระบบโดยรวมมีประสิทธิภาพมากขึ้น ความเรียบง่ายของการดำเนินการยังทำให้เป็นมิตรกับผู้ใช้มากขึ้นกับทุกคนที่สามารถใช้งานได้

โฮสต์เว็บไซต์ของคุณด้วย Pressidium

รับประกันคืนเงิน 60 วัน

ดูแผนของเรา

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

สิ่งที่ ห่อหุ้ม ทำคือการจัดกลุ่มข้อมูลและพฤติกรรมภายในเอนทิตีเดียว ภายในคลาส คุณสามารถกำหนดวิธีใช้งาน (ปุ่มหม้อไอน้ำ) และควบคุมการมองเห็นได้โดยใช้การติดฉลากสาธารณะ ป้องกัน หรือส่วนตัวในคลาส นี่คือสิ่งที่ทำให้ระบบมีความปลอดภัยมากเพราะช่วยให้คุณสามารถควบคุมผู้ที่สามารถเข้าถึงได้ นอกจากนี้ยังหมายความว่าง่ายต่อการบำรุงรักษาและใช้งานอีกด้วย

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

สุดท้าย Polymorphism คือสิ่งที่ทำให้ความสัมพันธ์ทั้งหมดทำงานร่วมกัน สิ่งที่กำหนดว่า Classes ของคุณมีเหมือนกันอย่างไร วิธีการใช้องค์ประกอบทั่วไปเหล่านี้ซ้ำ และไม่ว่าจะเกี่ยวข้องกับสิ่งอื่นใด

บทสรุป

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

เป้าหมายของเราคือ เมื่อคุณอ่านบทความชุดของเราเกี่ยวกับ OOP เสร็จแล้ว คุณจะมั่นใจที่จะใช้วิธีการเขียนโปรแกรมนี้ในสถานการณ์ที่หลากหลาย ในระหว่างนี้ คุณอาจต้องการอ่านเกี่ยวกับ OOP บน Wikipedia ต่อไป

คลิกที่นี่เพื่ออ่านส่วนที่ 2 ใน Objected Oriented Programming Series