Besteci PHP gereksinimini atla


117

PHPCI ve composer kullanıyoruz. PHPCI çalıştıran sunucu PHP 5.3 üzerindedir.

Bir proje için besteci kullanarak Facebook PHP SDK ekledik. PHP 5.4 gerektirir. Composer, PHPCI tarafından tetiklenir ve çalıştırılır. Ancak CI sunucusu PHP 5.3 oluşturucusunu yeni aldığından, hata mesajı ile başarısız oldu:

facebook/php-sdk-v4 4.0.9 requires php >=5.4.0 -> no matching package found.

Bu, elbette PHPCI'deki yapımı başarısız kıldı.

Bu gereksinimi atlama olasılığı var mı? Belki composer.json'a bir seçenek ekleyerek? Veya composer.phar çağrısı için bir parametre?

Yanıtlar:


286

Seçeneği buldum:

composer install --ignore-platform-reqs

Platform gereksinimlerini göz ardı edin (php ve ext-paketleri)


Düzenleme: Bununla platform kontrollerini atlayabilirsiniz, ancak Composer o zaman verilen PHP sürümüne göre paketleri alır. Dolayısıyla, composer'a depedency çözümleme sırasında bir PHP sürümünü de taklit etmek istediğinizde, bunu composer.json'unuzda kullanabilirsiniz (ve kullanmalısınız!):

{
    "config": {
       "platform": {
           "php": "5.6.6"
       }
    }
}

https://getcomposer.org/doc/06-config.md#platform


Özel depoyu nasıl göz ardı edebilirim. Bazı paketler özel depo gerektirir.
dungphanxuan

Muhteşem. Php cli henüz bir sürüm değişikliğini yansıtmadığında kullanışlıdır.
giovannipds

Composer 2'de kullanılabilecek yeni bir komut var: php.watch/articles/composer-ignore-platform-req
Armin

3

Birçok komut için, composer'a " --ignore-platform-reqs" parametresiyle php sürüm kontrolünü atlamasını söyleyebilirsiniz :

composer COMMAND --ignore-platform-reqs

bu php sürüm belirtimini atlayacaktır.

Yazılımın çalışıp çalışmayacağının farkında olun: kodun bir yerinde en azından belirtilen php sürümüne ihtiyaç duyulduğu için php sürüm belirtimi vardır, bu nedenle bu kodu kullanırsanız yazılım bozulacaktır.


--ignore-platform-reqscevabınızın ima ettiği gibi mevcut tüm komutlar için değildir.
Armin

-11

Herhangi bir şey PHP'nin belirli bir sürümünü gerektiriyorsa, PHP'nin daha düşük bir sürümünde çalışmaz. PHP gereksinimini atlarken de hatalar almaya devam edeceksiniz.

Btw, PHP 5.3 artık korunmuyor, PHPCI sunucusunu güncellemenizi şiddetle tavsiye ederim.


3
Öncelikle PHP gereksinimini nasıl atlayacağımı öğrenmek istiyorum.
Armin

Kod daha düşük bir php sürümünde çalışmayacağı için yapamazsınız ve çalışmayacaksınız
Wouter J

3
Olacak. Yalnızca CI sunucusu düşük PHP sürümüne sahip. Facebook SDK'yı içeren sunucu PHP 5.4 üzerinde çalışmaktadır. Her şeyi güzel bir konuşlandırılabilir zip dosyasına paketleyen bir ci sunucusudur.
Armin

PHP 5.3 artık çekirdek PHP geliştiricileri tarafından desteklenmese de, Linux'un bazı türleri onu hala destekliyor ve bir süre daha yapacak. Ubuntu 12.04 LTS, 5.3 ile birlikte gelir ve Nisan 2017'ye kadar desteklenir ( wiki.ubuntu.com/LTS ). 14.04'e geçmek en iyi yükseltme yoludur, ancak düzeltilmesi gereken bir miktar çalışma gerektiren önemli değişiklikler vardır (Apache 2.4, php-fpm vb.). Dolayısıyla internetin çoğu hala 5.3.x kullanıyor.
Andrew McCombe

doğru maalesef paketlerin% 99'u iyi desteklenenler bile uygun gereksinimlere sahip değil. Bu, geliştiricinin her şeyden çok ne kullandığının bir göstergesidir.
mschuett
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.