ใครเป็นผู้กำหนดสเปค PSR?

ใครเป็นผู้กำหนดสเปค PSR?

PSR ถูกสร้างและพัฒนาโดย PHP-FIG (PHP Framework Interoperability Group) ซึ่งเป็นกลุ่มนักพัฒนาที่รวมตัวกันจากเฟรมเวิร์กและไลบรารีต่าง ๆ ในวงการ PHP เช่น Laravel, Symfony, Zend Framework และอื่น ๆ เป้าหมายหลักของ PHP-FIG คือการสร้างมาตรฐานกลางที่ช่วยให้เฟรมเวิร์กและไลบรารีสามารถทำงานร่วมกันได้อย่างมีประสิทธิภาพ

PHP-FIG ทำงานอย่างไร?

  1. การเสนอ PSR
    สมาชิกกลุ่ม PHP-FIG ที่ประกอบด้วยนักพัฒนาและตัวแทนจากเฟรมเวิร์ก/ไลบรารีชั้นนำ จะเสนอแนวคิดหรือมาตรฐานใหม่ที่ต้องการเรียกว่า "Proposal" (เช่น PSR-1, PSR-2 ฯลฯ)
  2. การตรวจสอบและอภิปราย
    • Proposal จะต้องผ่านการถกเถียงและตรวจสอบจากสมาชิกกลุ่ม ซึ่งจะมีการพิจารณาถึงผลกระทบและประโยชน์ของมาตรฐานนั้น ๆ
    • ทุกการเปลี่ยนแปลงและข้อเสนอแนะจะต้องได้รับความเห็นชอบร่วมกัน เพื่อให้แน่ใจว่ามาตรฐานที่ออกมาได้รับการยอมรับจากหลายฝ่ายในวงการ
  3. การลงมติ (Voting Process)
    • เมื่อ Proposal ผ่านกระบวนการอภิปรายจนได้รับการสนับสนุนอย่างเพียงพอ จะเข้าสู่กระบวนการลงมติ
    • หากเสียงสนับสนุนส่วนใหญ่เห็นชอบ มาตรฐานนั้นจะถูกประกาศเป็น PSR อย่างเป็นทางการ
  4. การปรับปรุงมาตรฐาน
    • PSR ไม่ใช่มาตรฐานที่หยุดนิ่ง เมื่อมีเทคโนโลยีหรือแนวปฏิบัติใหม่ ๆ เกิดขึ้น PHP-FIG สามารถปรับปรุงหรือเสนอมาตรฐานใหม่ได้ เช่น PSR-2 ถูกแทนที่ด้วย PSR-12 เพื่อรองรับแนวทางการเขียนโค้ดยุคใหม่

PHP-FIG ประกอบด้วยใครบ้าง?

  • สมาชิกหลัก: ตัวแทนจากเฟรมเวิร์กชั้นนำ เช่น Symfony, Laravel, Zend, Slim และ Drupal
  • Contributor (ผู้ร่วมพัฒนา): นักพัฒนา PHP ทั่วไปที่สนับสนุนแนวทางของ FIG
  • Secretariat (เลขานุการ): ทำหน้าที่จัดการกระบวนการและเอกสารที่เกี่ยวข้องกับการออก PSR

เป้าหมายหลักของ PHP-FIG

  • สร้าง มาตรฐานกลาง ที่ช่วยให้เฟรมเวิร์กและไลบรารีต่าง ๆ ทำงานร่วมกันได้
  • สนับสนุนการทำงานร่วมกันระหว่างนักพัฒนา ไม่ว่าจะเป็นทีมเล็กหรือทีมใหญ่
  • ส่งเสริมการใช้แนวปฏิบัติที่ดีที่สุด (Best Practices) เพื่อยกระดับคุณภาพของซอฟต์แวร์ PHP

เพื่อนๆ สามารถเข้าไปอ่าน รายละเอียดแต่ละเรื่อง หรือ ติดตาม PSR ที่ Public แล้ว รวมถึงตัวอย่าง ของ PSR ได้จาก ลิงก์นี้

สรุป:
PSR ถูกกำหนดและพัฒนาโดย PHP-FIG ซึ่งเป็นกลุ่มนักพัฒนาที่มุ่งเน้นให้เฟรมเวิร์กและไลบรารีต่าง ๆ ในวงการ PHP สามารถทำงานร่วมกันได้อย่างราบรื่นและมีประสิทธิภาพ การเข้าใจว่าใครเป็นผู้กำหนดสเปค PSR และกระบวนการที่เกี่ยวข้อง ช่วยให้นักพัฒนาเห็นถึงความสำคัญของการใช้มาตรฐานนี้ในการพัฒนาโครงการของตนเอง

Read more

การทำ Data Migration และ Seeder: คู่มือสำหรับ Developer

การทำ Data Migration และ Seeder: คู่มือสำหรับ Developer

ถ้าพูดถึงการพัฒนาแอปพลิเคชันที่เชื่อมต่อกับ Database หนึ่งในความยุ่งยากที่สุดคือการจัดการ Database structure ที่เปลี่ยนไปตามฟีเจอร์ใหม่ๆ ที่เพิ่มเข้ามา เช่น เพิ่มตาราง (Table) เปลี่ยนชนิดข้อมูล (Data type) หรือลบฟิลด์ (Field) ออกไป และแน่นอนว่

By maimem
เช็ค Internet จากเว็บ: ทำยังไงให้รู้ว่าออกเน็ตได้จริง?

เช็ค Internet จากเว็บ: ทำยังไงให้รู้ว่าออกเน็ตได้จริง?

เคยเจอไหมครับ เวลาใช้งานเว็บไซต์แล้วอยู่ดี ๆ ก็โหลดข้อมูลไม่ได้ หรือ API เงียบหายไม่มีการตอบกลับ? หลายครั้งเรามักสงสัยว่า "ตกลงปัญหาอยู่ที่ตัวเรา เซิร์ฟเวอร์ หรือ Internet กันแน่?" วันนี้ผมจะมาเล่าเรื่อง "การตรวจสอบสถานะการเชื่อมต่

By maimem
Rust Series #2 - รู้จัก Cargo: ผู้ช่วยส่วนตัวของโปรเจกต์ Rust!

Rust Series #2 - รู้จัก Cargo: ผู้ช่วยส่วนตัวของโปรเจกต์ Rust!

ถ้าคุณเริ่มต้นเขียน Rust แล้วรู้สึกว่า “เฮ้ย! Rust เจ๋งแหะ” ก็ขอแสดงความยินดีครับ คุณเพิ่งเจอเพื่อนแท้ในโลกโปรแกรมมิ่ง! แต่เดี๋ยวก่อน... ถ้าต้องเขียนโค้ดโปรเจกต์ใหญ่ ๆ บริหารไลบรารี ดูแลไฟล์ต่าง ๆ หรือทดสอบโค้ดทุกวั

By maimem
ซ่อน Credential ใน AWS CodeBuild ให้ปลอดภัยด้วย Parameter Store

ซ่อน Credential ใน AWS CodeBuild ให้ปลอดภัยด้วย Parameter Store

ทำไมต้องซ่อน Credential? ในโลกของ DevOps และ Cloud Computing การจัดการ Credential (ข้อมูลรับรอง เช่น API Keys, Passwords, หรือ Secrets ต่างๆ) เป็นเรื่องที่สำคัญอย่างยิ่ง เพราะ Credential เปรียบเสมือนกุญแจที่เปิดประตูไปสู่ทรัพยากรสำคัญในระบบ เช่น ฐานข้อมูล

By maimem