2013-04-24 18 views
9

Quando eseguoDa dove vengono i pacchetti di PHP Composer?

$ composer.phar install 

Dove i pacchetti che vengono installati viene?

Capisco che Packagist è il repository predefinito per i pacchetti PHP e che manca un pacchetto diverso in composer.json, questo è dove il compositore cercherà i pacchetti.

Tuttavia, ciò su cui non sono chiaro è il modo in cui Composer e Packagist interagiscono.

  • Does file composer scaricare direttamente da packagist.org

  • O fa Compositore ottenere un/hg collegamento repository git/svn da packagist e scaricare i file dal repository direttamente?

  • Oppure qualcos'altro?

+3

packagist contiene collegamenti ai repository ed è qui che vengono scaricati da –

risposta

10

Dipende dal contenuto del file composer.json.

Ad esempio, se il composer.json conteneva semplicemente

{ 
    "require": { 
     "phpunit/phpunit": "3.8.*@dev" 
    } 
} 

poi ricerche compositore Packagist, e trova PHPUnit qui:

https://packagist.org/packages/phpunit/phpunit

che racconta compositore di caricare phpunit da qui:

https://github.com/sebastianbergmann/phpunit.git

Se invece la vostra composer.json conteneva

{ 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "http://github.com/sebastianbergmann/phpunit" 
     } 
    ], 
    "require": { 
     "phpunit/phpunit": "3.8.*@dev" 
    } 
} 

allora compositore non cercherà di Packagist, ma andare direttamente a GitHub per scaricare il repo.

I pacchetti registrati sul Packagist sono solito la versione "autorevole" del pacchetto (non un fork), ma ho trovato diversi casi in cui questo è NON il caso, così si dovrebbe controllare per essere sicuri stai tirando il pacco che ti aspetti.

1

Packagist.org offre agli utenti di registrare il loro software non puntando Packagist di leggere la loro file di composer.json che viene pubblicato da qualche parte sul web.

Il solito caso sarebbero alcuni dei comuni hoster open source come github, il che rende davvero facile perché il compositore può gestire subito un tale repo git. Puoi comunque ospitare il tuo repository git o svn o hg, o anche solo pubblicare file ZIP o TGZ pronti per ogni versione del software.

Download del compositore direttamente dalla fonte, ad es. Packagist conosce solo quelle fonti e dice all'istanza del tuo compositore dove andare. Lo fa scaricando una serie di file json da Packagist.org che hanno tutte le informazioni. Questo è molto più facile che scoprire dove sono ospitate le librerie che vuoi e aggiungere queste informazioni come una voce di repository nel tuo file compositore.json locale. :)

Problemi correlati