How to create php and submit to https://packagist.org/ | วิธีสร้างแพคเก็จเพื่อ submit packagist.org



หลังจากที่ห่างหายจากเขียน 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 ตัวอย่างไฟล์มีดังนี้
  • <?php
    namespace 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/ เป็นอันเสร็จพิธี


Share on Google Plus

About maxcom

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 ความคิดเห็น:

แสดงความคิดเห็น