เมื่อเราสามารถสร้าง Repository ไม่ว่าจะใน Github หรือ Bitbucket สำหรับ PHP code เป็นที่เรียบร้อยแล้ว จากนั้นเราก็สามารถที่จะใช้ git clone
เพื่อดึง Project repository ที่เราได้สร้างไว้เพื่อเอามาใช้กับโปรเจ็คอื่นๆ ได้โดยง่าย แต่เพื่อที่จะให้ง่ายไปยิ่งกว่านั้น และเพื่อซัพพอร์ต Package management ซึ่งถูกใช้กันอย่างแพร่หลายในปัจจุบัน ถ้าหากว่า Repository ที่เราสร้างไว้ไม่ซัพพอร์ตมันแล้วล่ะก็ มันก็คงจะดูไม่ค่อยคูลสักเท่าไหร่ใช่ไหมล่ะครับ 😋
ด้วยเหตุฉนั้น จึงเป็นสาเหตุที่ทำให้เราต้อง เพิ่ม PHP Repository ของเราเข้าไปใน Packagist เพื่อทำให้ Repository คูลๆ ของเราสามารถเรียกใช้งานด้วย composer
ได้ครับ อย่างเช่น composer require yourname/coolcool
ขั้นตอน
เรามาเริ่มกันเลยดีกว่าครับ ด้วยความหวังว่าจะมีใครสักคนเห็นว่าเราพยายามหรือไม่ได้ทำงานแบบขอไปที "อู้ว~ แพคเกจของคนนี้เขาใช้ composer ได้ด้วย ดีดี เดี๋ยวกดดาวให้สักหน่อย" ในใจของเราคงหวังไว้อย่างนี้ใช่ไหมครับ อิอิ หรือแม้ว่าเพื่อนๆ ที่เข้ามาอ่านจะไม่ได้คิดแบบนี้ แต่ผมว่าคงมีใครสักคนล่ะที่คิดประมาณนี้ อย่างน้อยก็ผมคนนึงล่ะที่หวังไว้แบบนี้ เพราะอยากได้ดาวกับเขาบ้าง ฮ่าๆ เข้าเรื่องครับ มาเริ่มกันเลยดีกว่า
1) สร้าง composer.json
ไฟล์ในโปรเจ็คที่เราสร้าง
{
"name": "uatthaphon/g-crawler",
"description": "A simple php Web Scraper that wrap up Guzzle and DomCrawler",
"keywords": ["scrap", "dom-crawler", "guzzle"],
"type": "library",
"license": "MIT",
"authors": [
{
"name": "Atthaphon Urairat",
"email": "u.atthaphon@gmail.com",
"homepage": "https://atthaphon.urairat.com/"
}
],
"require": {
"php": "^7.2",
"symfony/dom-crawler": "^4.2",
"guzzlehttp/guzzle": "^6.3",
"symfony/css-selector": "^4.2"
},
"require-dev": {
"phpunit/phpunit": "^8.1"
},
"autoload": {
"psr-4": {
"GCrawler\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"GCrawler\\Tests\\": "tests/"
}
}
}
2) สร้าง Repository ใน Github หรือ Bitbucket จากนั้นก็ push โปรเจ็คขึ้นไป หรือถ้าหากว่าสร้างไว้แล้วก็คูลเลยครับ
3) เพิ่ม Repository ของเราใน Packagist เพิ่ม Repository url เพื่อเช็คและกด Submit ได้เลยครับ
4) หลังจากที่ Packagist เพิ่มโปรเจ็คเราเข้าไปในระบบเป็นที่เรียบร้อยแล้วเราก็จะสามารถใช้ composer require yourname/coolcool
ได้แล้วครับ
สุดท้ายนี้ใครที่กำลังทำ scrap ข้อมูลด้วย php อยู่ ก็สามารถลองดึง Repository g-crawler ของผมมาใช้ได้นะครับ เป็น โปรเจ็ค Wrap up symfony/dom-crawler
,symfony/css-selector
และ guzzlehttp/guzzle
ที่ทำไว้เพื่อให้เรียกใช้งานได้ง่าย ไม่ต้องไปเพิ่มโปรเจ็คเองเยอะแยะและทำให้ Config ง่ายและเร็วขึ้นครับ ผมหวังว่าบทความและ Repo ของผมคงจะมีประโยชน์สำหรับคนอื่นบ้างไม่มากก็น้อยนะครับ
Top comments (0)