หลังจากที่ห่างหายจากเขียน blog ไปนานเกือบปี จริงไม่มีเวลาก็เป็นข้ออ้างอย่างหนึ่งที่ผมพยามสร้างเป็นข้อแก้ตัว แต่ก็ช่างเหอะพอดีช่วงนี้มีเวลาว่างเพิ่มขึ้นนิดหน่อยก็เลยได้ศึกษาเรื่อง composer ต่อยอดจากการเป็นผู้ใช้งานทั่วเป็นประเภท "ผู้สร้าง package" เพื่อแจกชาวบ้าน
สำหรับคนที่จะอ่านบนความนี้ต่อ ต้องรู้เรื่องต่อไปนี้
- composer
- php
- namespace
- github
วงจรการทำงาน (life cycle) ของมันเริ่มจาก ตัวโปรแกรมเมอร์เองสร้าง code ขึ้นมาหลังจากนั้น commit code ขึ้นไปยัง github เพื่อ public code เสร็ดแล้ว ไป submit code ที่ packagist วงจรการทำงานภาพรวมประมาณนี้
- ต่อไปจะเป็นวิธีการสร้าง code ด้วย composer ก่อนอื่นให้สร้าง directoy เปล่า ๆ ขึ้นมาอันหนึ่งตั้งชื่ออะไรก็ได้ ของผมตั้งเป็น packgist
- หลังจากนั้นเปิด command line ขึ้นมาใช้คำสั่ง composer init เพื่อ intial ตัว package ที่เรากำลังจะสร้างมันจะถามดังนี้
- คำถามหลัก ๆ ที่ต้องรู้ก็มี ชื่อแพ็คเก็จ คำอธิบาย ชื่อผู้สร้าง อีเมล์ version ที่ stable ,required หมายถึงมี pakcge อื่น ๆ ไหมที่ต้องติดตั้งลงไปด้วย หลังจากใส่คำตอบหมดกด enter เราจะได้ composer.json ขึ้นมา
- พอได้ composer.json แล้วลองทดสอบง่าย ๆ โดยการใช้คำสั่ง composer install ถ้ามันไม่มีอะไรผิดเราจะได้ directory ชื่อ vendor ขึ้นมา จะทำพวก autoload ให้
- มี trick อีกอย่างคือการทำ autoload file ให้เราเพิ่ม
-
"autoload": {"psr-0": {"HelloWorld": "src/"}}
- psr-0 คือมาตรฐานในการเขียน code ซึ่งเวลาที่เราเขียน code เราไม่ตรงตามรูปแบบที่มันออกแบบไว้มันจะมีการแจ้งเตือน และอีกอย่างคือมันมีหลาย psr มาก ลองไปหาอ่านดู
- HelloWord คือ directory ที่เก็บไฟล์ของเรา ส่วน src root path คือทุก class ที่ใช้ Namespaces จะถูก autoload คือโหลดอัตโนมัตินั่นเอง ว่ากันง่าย ๆ คือเราไม่ต้อง include หรือ required เวลาใช้งานมัน [ตัวอย่าง path file ]
-
/packgist/src/HelloWorld
- ต่อมาลองสร้างไฟล์ class SayHello.php โดยสร้างไว้ภายใต้ HelloWord ตัวอย่างไฟล์มีดังนี้
-
<?phpnamespace HelloWorld;class SayHello{public static function world(){return 'ok';}}
- เป็น class ง่าย ๆ มีหนึ่งฟังก์ชั่นคือ world เอาแค่นี้ก่อน
- หลังจากนั้นให้ไปสร้าง repository ที่ github ของคุณตั้งชื่อตามที่คุณต้องการได้เลยแต่จะให้ดีควรจะสอดคล้องกับชื่อที่ตั้งใน composer ขั้นตอนการ commit code แล้ว push code ขึ้นไปยัง github ผมขอข้ามไป ซึ่งผมเชื่อว่ามันมีบทความอื่น ๆ เขียนเยอะแล้ว
- หลังจาก code ขึ้นไปอยู่บน github แล้วขั้นตอนต่อไปคือ submit code ไปยัง https://packagist.org/ แต่ว่าเราต้องเป็นสมาชิกเสียก่อน หลังจากที่ เป็นสมาาชิกแล้ว login เข้ามาแล้วให้คุณไปที่เมนู submit coppy url repository ที่อยู่ใน github ของคุณมา submit ลองที่ https://packagist.org/ เป็นอันเสร็จพิธี
0 ความคิดเห็น:
แสดงความคิดเห็น