Tag: Composer
ส่งอีเมลด้วย SendGrid
การส่งอีเมลเป็นหนึ่งในสิ่งที่เราทำกันบ่อยๆ บนเว็บไซต์ ซึ่งท่าที่โปรแกรมเมอร์ PHP ชาวไทยใช้กันบ่อยๆ ก็คือเอา SMTP ของ Gmail มาใช่ส่งเมลผ่าน SMTP ด้วยไลบรารี่อย่าง PHPMailer ปัญหาคืออีเมลที่ส่งออกไป มันจะเป็นแอดเดรสของ Gmail ที่เราเอา SMTP มาใช้ส่ง ซึ่งความน่าเชื่อถือมันต่ำมาก และในบางครั้งที่เราต้องส่งอีเมลจำนวนมาก ก็อาจจะติดลิมิตที่ 500 อีเมลต่อวัน และไม่สามารถขยายเพิ่มได้ตามความต้องการ (เว้นแต่จะขยันมานั่งเปลี่ยน SMTP เองทุกครั้งที่มันเต็ม)
การทำ Routing ใน PHP ด้วย AltoRouter
โดยปกติแล้ว PHP จะทำงานร่วมกับเว็บเซิร์ฟเวอร์อย่าง Apache หรือ Nginx ที่เราสามารถเรียกใช้ไฟล์ PHP ผ่าน URL โดยตรงได้เลย เช่นเราอยากเรียกไฟล์ post.php ขึ้นมาทำงาน ก็สามารถเรียกผ่าน URL https://domain.com/post.php ตรงๆ ได้เลย แต่พอเมื่อเราโดดไปเขียนภาษาอื่น ไม่ว่าจะ ASP.NET MVC หรือของยอดนิยมในตอนนี้อย่าง Node.js เราจะเจอวิธีการกำหนด URL อีกแบบ ที่เราต้องไปกำหนดแพทเทิร์นของ URL ระบุว่า URL มาในลักษณะนี้จะเรียกหน้าไหนมาแสดง เราเรียกวิธีกำหนด URL แบบนี้ว่าการทำ routing เรามักจะเห็นการทำ routing แบบนี้เมื่อเราใช้เฟรมเวิร์กสักตัวในการสร้างเว็บไซต์ แต่จริงๆ แล้วมันก็มีเป็นไลบรารี่สำเร็จรูปให้เราติดตั้งใช้งานได้เช่นกันในกรณีที่เราอยากทำโปรเจ็กท์เล็กๆ แบบไม่ใช้งานเฟรมเวิร์ก
การใช้ PSR-4 autoload ใน Composer
ข้อดีอย่างหนึ่งในการเขียนการฟีเจอร์ต่างๆ แยกมาเป็นคลาสคลาสหนึ่ง คือเราสามารถเก็บค่าทุกค่า ฟังก์ชันทุกฟังก์ชัน เอาไว้แค่ในตัวมันได้โดยไม่ต้องกลัวว่ามันจะไปตีกับค่าเดียวกันหรือฟังก์ชันเดียวกัน (จริงๆ มันเรียกว่า property กับ method) ที่อยู่ในคลาสอื่น หรือที่เขาเรียกกันว่า encapsulation ตัวอย่างการทำ encapsulation ที่เราเคยเขียนไว้ คือการใช้ ACF ทำบล็อก Gutenberg แต่ข้อเสียอย่างหนึ่งของการทำ encapsulation นั่นคือเราต้องมานั่ง include ไฟล์คลาสจำนวนมาก (ยิ่งเขียนเยอะยิ่ง include เยอะ) ซึ่งถึงจุดหนึ่งแล้วมันจะกลายเป็นเรื่องน่ารำคาญขึ้นมาแทน แต่เราก็มีทางออก คือการทำ PSR-4 Autoloading
เขียนธีม WordPress ด้วย Sage 9 – ตอนที่ 2 ระบบจัดการแพ็คเกจ
Sage 9 มีการนำเอาระบบจัดการแพ็คเพจมาใช้อยู่สองตัว คือ yarn สำหรับจัดการแพ็คเกจฟรอนต์เอ็นด์ต่างๆ (ใช้แทน npm) และ composer สำหรับจัดการแพ็คเกจ PHP ดังนั้นตรงนี้จะขอเริ่มสั้นๆ เกี่ยวกับการติดตั้งแพ็คเกจต่างๆ กันก่อน (หากใครที่คุ้นเคยกับการใช้ Composer หรือการเขียน ES6 อยู่แล้ว ก็สามารถข้ามตอนนี้ไปได้เลย) ติดตั้งแพ็คเกจ PHP แพ็คเกจ PHP นั้นค่อนข้างเข้าใจง่ายอยู่แล้ว โดยแพ็คเกจต่างๆ ที่ถูกติดตั้งผ่านคำสั่ง composer require <ชื่อแพ็คเกจ> จะถูกโหลดอัตโนมัติผ่านไฟล์ autoload.php และสามารถเรียกใช้ได้ทันที ทั้งนี้มีข้อควรระวังอยู่อย่างหนึ่งคือใน Sage 9 นั้นจะมีการใช้ namespace เข้ามาช่วยในการจัดการคลาสต่างๆ ด้วย ซึ่งถ้าหากว่าแพ็คเกจที่ติดตั้งเข้ามา (หรือคลาสใดๆ ก็ตาม) ที่ไม่มีการกำหนด namespace เอาไว้ เวลาเรียกใช้จะต้องใส่ \ นำหน้าไปด้วย เช่น ติดตั้งแพ็คเกจ Front-end (JS และ CSS) ในด้านแพ็คเกจฟรอนต์เอ็นด์นั้นอาจจะค่อนข้างเป็นเรื่องใหม่สำหรับคนทำเวิร์ดเพรสอยู่ในเล็กน้อย […]