2014-10-02 49 views
46

Stiamo utilizzando PHPCI e compositore. Il server che esegue PHPCI è su PHP 5.3.Skip compositore PHP requisito

Per un progetto che abbiamo aggiunto il Facebook PHP SDK, con il compositore. Richiede PHP 5.4. Il compositore viene attivato da PHPCI e viene eseguito. Ma perché il server CI appena ricevuto PHP 5.3 compositore riuscita con il messaggio di errore:

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

Questo let fallire la mia costruire in PHPCI, naturalmente.

C'è una possibilità di saltare questo requisito? Forse aggiungendo un'opzione a compositore.json? O un parametro per la chiamata a composer.phar?

risposta

121

ho trovato l'opzione:

composer install --ignore-platform-reqs 

Ignora requisiti di piattaforma (PHP & pacchetti EXT).


Edit: È possibile saltare i controlli di piattaforma con questo, ma Compositore si prelevare pacchetti basati su data versione di PHP allora. Così, quando è necessario compositore di emulare anche una versione di PHP durante di dipendenze risolvere, si può (! E dovrebbe) utilizzare questo nel vostro composer.json:

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

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

+0

Come posso ignorare il repository privato. Alcuni pacchetti richiedono un repo privato. – dungphanxuan

+0

Non puoi. È necessario assicurarsi che Git, che è eseguito dal compositore, abbia accesso ai repository privati, solitamente usando le chiavi ssh. È anche possibile memorizzare le credenziali di autenticazione in un file di configurazione globale del compositore, per server satis privati. Ma fino a quando un pacchetto è ** richiesto ** non puoi ignorarlo. Questo funziona solo con i requisiti della piattaforma. – Armin

0

Semmai richiede una versione specifica di PHP, non verrà eseguito in una versione inferiore di PHP. Riceverai comunque correttamente errori quando elimini il requisito PHP.

Btw, PHP 5.3 non è più mantenuto, che vi consiglio vivamente di aggiornare il server PHPCI.

+0

Prima di tutto vorrei sapere come bypassare il requisito PHP. – Armin

+0

Non puoi e non lo farai perché il codice non funzionerà in una versione php inferiore –

+1

Lo farà. Solo il server CI ha la versione bassa di PHP. Il server che contiene l'SDK di Facebook gira su PHP 5.4. Si tratta solo del ci server, che racchiude tutto in un file zip deployable. – Armin