Chạy đồng thời composer 1 và 2

Composer 2 rất tuyệt vời nhưng lại không tương thích với phiên bản php <7.2. Vì vậy nếu bạn cần bảo trì một project có php cũ mà không sử dụng docker hay máy ảo thì bạn có thể gặp một số lỗi như sau:

PHP Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.2.0". You are running 7.1.33.


Để khắc phục vấn đề trên, bạn có thể chạy đồng thời 2 phiên bản Composer 1 và 2 theo các bước dưới đây.

  1. Cài Composer globally theo chỉ dẫn từ home page  https://getcomposer.org/doc/00-intro.md#installation-linux-unix-macos
    Theo cách trên thì Composer 2 sẽ được cài đặt vào /usr/local/bin. (với MacOS bạn có thể dùng brew install composer)
  2. Di chuyển bản composer trên vào 1 thư mục composer2: mv /usr/local/bin/composer /usr/local/bin/composer2
  3. CD tới thư mục /usr/local/bin/ bằng lệnh: /usr/local/bin/
  4. Download phiên bản V1 version từ link: https://getcomposer.org/download/1.10.17/composer.phar : wget https://getcomposer.org/download/1.10.17/composer.phar
  5. Đảm bảo  phar file vừa download có đủ quyền để thực thi: chmod 755 composer.phar
  6. Đổi tên bản composer v1 vừa cài đặt thành composer1: mv /usr/local/bin/composer.phar /usr/local/bin/composer1
  7. Bây giờ sẽ tạo symlink cho bản composer global mà bạn muốn: ln -s /usr/local/bin/composer1 /usr/local/bin/composer. Nếu ở local bạn dùng 1 PHP switcher như dnsmasq or valet, bạn hãy sử dụng bản global composer phù hợp với bản của phpf
  8. Để sử dụng bản global Composer: composer --version
  9. Để sử dụng global Composer 1: run composer1 --version
  10. Để sử dụng Composer 2: run composer2 --version

Hy vọng bạn mẹo trên có thể giúp bạn làm việc dễ dàng hơn!