Menu

Showing posts with label composer. Show all posts
Showing posts with label composer. Show all posts

Monday, June 14, 2021

[Laravel - Composer] วิธีการตั้งค่า Authentication token ของ Github ใน Composer
[Laravel - Composer] How to Set Github Authentication Token in Composer

หลังจากรัน composer install เพื่อติดตั้ง package ที่จำเป็นต้องใช้งาน แล้วได้ข้อความตามข้างล่างนี้

Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+MACHINE-NAME+2021-02-17+0532
to retrieve a token. It will be stored in "C:/Users/puthipong/AppData/Roaming/Composer/auth.json" for future use by Composer.
Token (hidden): GitHub API limit (0 calls/hr) is exhausted, could not fetch https://api.github.com/repos/test/l5-repository/contents/composer.json?ref=ce164fa72b884b4af488ff2749a171346f229c66. Create a GitHub OAuth token to go over the API rate limit. You can also wait until ? for the rate limit to reset.

สิ่งที่เราต้องทำมีดังนี้
  1. เข้าไปที่ URL ตามข้อความข้างต้น
    https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+MACHINE-NAME+2021-02-17+0532
  2. กดสร้าง token 
  3. รันคำสั่งข้างล่างนี้
    composer config --global github-oauth.github.com <token>
หมายเหตุ สำหรับข้อมูลเพิ่มเติม อ่านได้ที่ https://getcomposer.org/doc/articles/authentication-for-private-packages.md#github-oauth

Wednesday, February 17, 2021

[Laravel - Composer] วิธีการใช้ Custom Package พร้อมกับการกำหนด Version ของ Package นั้นในไฟล์ composer.json
[Laravel - Package] How to Use Your Custom Package with Package Version in Composer File

ไฟล์ composer.json เป็นแหล่งรวมรายการ package ที่ต้องใช้ใน Laravel project

บางครั้งเราอาจจะต้อง fork package บางตัวมาจาก repository อื่น เพื่อนำมาปรับใช้กับ project ของเรา

หลังจากที่เราปรับแก้ package แล้ว เรามีวิธีตั้งค่าไฟล์ composer เพื่อเรียกใช้ package จาก branch บน repository ของเราดังนี้
  1. เพิ่มชื่อ package ของเราในส่วน require หรือ require-dev ดังนี้
    "require": {
        ...
        "{package_name}": "dev-{branch_name}",
        ...
    }
    เช่น
    "require": {
        ...
        "monolog/monolog": "dev-fix-concurrent-mkdir",
        ...
    }
  2. เพิ่ม repository ของเราในส่วน repositories ดังนี้
    "repositories": {
        ...
        {
          "type": "vcs",
          "url": "{my_repository_url}"
        },
        ...
    }
    เช่น
    "repositories": {
        ...
        {
          "type": "vcs",
          "url": "https://github.com/my_repo/monolog.git"
        },
        ...
    }

Monday, January 25, 2021

[PHP - Composer] วิธีการรัน Composer แบบไม่จำกัดหน่วยความจำและไม่ต้องแก้ไขไฟล์ php.ini
[PHP - Composer] How to Run Composer with Unlimited Memory and Do Not Update PHP INI File

เมื่อเรารัน composer install หรือ composer require เราอาจจะเจอกับ error ข้างล่างนี้ ทำให้เราไม่สามารถติดตั้ง package ที่เราต้องการได้

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/Solver.php on line 223

อีกทั้งการแก้ไขขนาด memory ในไฟล์ php.ini ก็ดูเกินความจำเป็นไป

วิธีการรัน composer โดยไม่จำกัดขนาด memory สามารถรันได้ด้วยคำสั่งดังนี้

COMPOSER_MEMORY_LIMIT=-1 composer require {package_name}

สำหรับข้อมูลเพิ่มเติม อ่านได้ที่ Memory limit errors

Wednesday, November 27, 2019

[Laravel - Package] ขั้นตอนการตั้งค่า Packagist เพื่อให้ติดตั้ง Laravel Package ผ่าน Composer ได้
[Laravel - Package] Packagist Setting Steps for Laravel Package Installation via Composer

สมมติว่า เรามี Laravel package อยู่บน Repository ใดๆ แล้วเราต้องการให้สามารถติดตั้ง package ดังกล่าวผ่าน composer ได้เลย โดยไม่ต้องตั้งค่าใดๆเพิ่ม เรามีวิธีการดังต่อไปนี้

เนื่องจาก Composer ใช้งาน Packagist repository เป็น default repository เท่านั้น (อ่านเพิ่มเติมได้ใน Composer Repositories) ขั้นตอนการตั้งค่าจึงเป็นดังนี้
  1. Login เข้า https://packagist.org/
  2. เข้าหน้าเมนู Submit
  3. ใส่ repository url กดปุ่ม Check
  4. กดปุ่ม Submit
  5. รอจน package ถูกอัพเดตเรียบร้อย
สำหรับการทดสอบ ทำได้โดยรัน command ดังนี้
composer require arzeroid/laravel-model-encryptable
ผลที่ได้จะเป็นดังนี้

[Laravel - Package] วิธีการตั้งค่า Composer เพื่อติดตั้ง Package จาก GitHub
[Laravel] How to Install Package from GitHub via Composer

สมมติว่า เรามี Laravel package ตัวนึงอยู่บน GitHub ของเราตามรูปตัวอย่างข้างล่าง


เมื่อเราต้องการนำ package นั้นมาใช้งานใน project ของเรา โดยปกติแล้ว เราจะรัน command ดังนี้
composer require arzeroid/laravel-model-encryptable