Composer

Page last edited 587 giorni 9 ore fa
Da wiki.betaingegneria.it.

Composer[modifica]

Composer è un gestore di dipendenze per pacchetti PHP. È molto simile a PEAR.

Composer non è un gestore di pacchetti nello stesso senso in cui lo sono Yum o apt. Si tratta sempre di "pacchetti" o librerie, ma li gestisce in base al progetto, la loro installazione avviene in una directory (ad esempio: "vendor") all'interno del vostro progetto. Per impostazione predefinita, non installa nulla a livello globale.

Ad esempio, se abbiamo bisogno di installare una libreria per generare i file PDF globalmente (cioè in modo che sia a disposizione di tutto il webserver) allora useremo, piuttosto, il gestore di pacchetti PEAR. Se invece ci serve qualcosa per un singolo progetto (che vive in una singla cartella) utilizzeremo composer.

Attenzione: Composer lo utilizzeremo non solo per fare i ritocchi alle applicazioni Laravel, ma anche per creare da zero una nuova applicazione Laravel, quindi Composer è centrale a tutto il processo di sviluppo.

In poche parole per installare composer:

  $ curl -sS https://getcomposer.org/installer | php
  $ sudo mv composer.phar /usr/local/bin/composer

alla fine possiamo lanciare il comando e vedere che succede:

  $ composer
   
      ______
     / ____/___  ____ ___  ____  ____  ________  _____
    / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
   / /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
   \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                       /_/
   Composer version @package_branch_alias_version@ (@package_version@) @release_date@
   
   Usage:
     command [options] [arguments]

eccetera

Ulteriori info nel sito

Torna a Laravel

Esempio[modifica]

Sto sviluppando un pacchettino che legge file XML e da in output PFD passando per HTML. Avevo bisogno della libreria html2pdf. Ho trovato qui informazioni, il modo che ha avuto successo è il seguente:

  $ cd /var/ww/html/app 
  $ git clone https://github.com/spipu/html2pdf.git
  Cloning into 'html2pdf'...
  remote: Counting objects: 3162, done.
  remote: Total 3162 (delta 0), reused 0 (delta 0), pack-reused 3162
  Ricezione degli oggetti: 100% (3162/3162), 29.78 MiB | 558.00 KiB/s, done.
  Risoluzione dei delta: 100% (2067/2067), done.
  Checking connectivity... fatto.
  $ cd html2pdf/
  $ composer install
  Loading composer repositories with package information
  Installing dependencies (including require-dev)
  - Installing tecnickcom/tcpdf (6.2.12)
    Downloading: 100%         
  
  - Installing symfony/yaml (v3.2.3)
    Downloading: 100%
  ...
  Writing lock file
  Generating autoload files
  $