Composer
-
Upload
alessandro-nuzzo -
Category
Technology
-
view
360 -
download
1
description
Transcript of Composer
![Page 1: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/1.jpg)
COMPOSERE le dipendenze non sono più un problema
#pugMi16/10/2012
martedì 16 ottobre 12
![Page 2: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/2.jpg)
martedì 16 ottobre 12
![Page 3: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/3.jpg)
Esiste già PEAR!
martedì 16 ottobre 12
![Page 4: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/4.jpg)
Esiste già PEAR!
★ installazione poco pulita
martedì 16 ottobre 12
![Page 5: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/5.jpg)
Esiste già PEAR!
★ installazione poco pulita
★ canali sparsi
martedì 16 ottobre 12
![Page 6: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/6.jpg)
Esiste già PEAR!
★ installazione poco pulita
★ canali sparsi
★ standard troppo restrittivi
martedì 16 ottobre 12
![Page 7: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/7.jpg)
Vantaggi di composer
martedì 16 ottobre 12
![Page 8: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/8.jpg)
Vantaggi di composer★ installazione legata al
progetto
martedì 16 ottobre 12
![Page 9: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/9.jpg)
Vantaggi di composer★ installazione legata al
progetto
★ repository centrali
martedì 16 ottobre 12
![Page 10: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/10.jpg)
Vantaggi di composer★ installazione legata al
progetto
★ repository centrali
★ non esiste processo di approvazione
martedì 16 ottobre 12
![Page 11: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/11.jpg)
Vantaggi di composer★ installazione legata al
progetto
★ repository centrali
★ non esiste processo di approvazione
★ tutte le dipendenze sono gestite da un unico file
martedì 16 ottobre 12
![Page 12: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/12.jpg)
Vantaggi di composer★ installazione legata al
progetto
★ repository centrali
★ non esiste processo di approvazione
★ tutte le dipendenze sono gestite da un unico file
★ composer.lock
martedì 16 ottobre 12
![Page 13: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/13.jpg)
Problema
martedì 16 ottobre 12
![Page 14: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/14.jpg)
ProblemaHo bisogno di gestire delle versioni specifiche
delle librerie che utilizza il mio progetto.
martedì 16 ottobre 12
![Page 15: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/15.jpg)
ProblemaHo bisogno di gestire delle versioni specifiche
delle librerie che utilizza il mio progetto.
Ho bisogno di condividerle con i miei colleghi,con l’ambiente di sviluppo e quello di produzione.
martedì 16 ottobre 12
![Page 16: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/16.jpg)
ProblemaHo bisogno di gestire delle versioni specifiche
delle librerie che utilizza il mio progetto.
Ho bisogno di condividerle con i miei colleghi,con l’ambiente di sviluppo e quello di produzione.
COMPOSER!
martedì 16 ottobre 12
![Page 17: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/17.jpg)
composer
martedì 16 ottobre 12
![Page 18: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/18.jpg)
composer
Composer è un gestore di dipendenze per progettoche permette di specificare le versioni specifiche
delle librerie utilizzate.
martedì 16 ottobre 12
![Page 19: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/19.jpg)
composer
Composer è un gestore di dipendenze per progettoche permette di specificare le versioni specifiche
delle librerie utilizzate.
In senso opposto, permette di distribuire le mie librerie attraverseo packagist.com e di
non preoccuparmi delle dipendenze.
martedì 16 ottobre 12
![Page 20: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/20.jpg)
martedì 16 ottobre 12
![Page 21: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/21.jpg)
Installazione
martedì 16 ottobre 12
![Page 22: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/22.jpg)
Installazione
$ curl -s http://getcomposer.org/installer | php
martedì 16 ottobre 12
![Page 23: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/23.jpg)
Installazione
$ curl -s http://getcomposer.org/installer | php
$ curl -s http://getcomposer.org/installer | php -- --install-dir=bin
martedì 16 ottobre 12
![Page 24: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/24.jpg)
Installazione
$ curl -s http://getcomposer.org/installer | php
$ curl -s http://getcomposer.org/installer | php -- --install-dir=bin
$ composer.phar self-update
martedì 16 ottobre 12
![Page 25: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/25.jpg)
composer.json
martedì 16 ottobre 12
![Page 26: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/26.jpg)
composer.json{ "require": { "silex/silex": "1.0.*" },
"minimum-stability": "dev"}
martedì 16 ottobre 12
![Page 27: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/27.jpg)
composer.json{ "require": { "silex/silex": "1.0.*" },
"minimum-stability": "dev"}
Root del progetto
martedì 16 ottobre 12
![Page 28: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/28.jpg)
composer.json{ "require": { "silex/silex": "1.0.*" },
"minimum-stability": "dev"}
Root del progetto Require
martedì 16 ottobre 12
![Page 29: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/29.jpg)
composer.json{ "require": { "silex/silex": "1.0.*" },
"minimum-stability": "dev"}
Root del progetto Require Minimum stability
martedì 16 ottobre 12
![Page 30: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/30.jpg)
martedì 16 ottobre 12
![Page 31: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/31.jpg)
Bootstrap progetto
martedì 16 ottobre 12
![Page 32: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/32.jpg)
Bootstrap progetto
$ composer.phar create-project fabpot/silex-skeleton ~/dev/myproject
martedì 16 ottobre 12
![Page 33: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/33.jpg)
Bootstrap progetto
$ composer.phar create-project fabpot/silex-skeleton ~/dev/myproject
TIP: possiamo creare un progetto, eliminare le librerie che non ci servono da composer.json e rilanciare$ php composer.phar update
martedì 16 ottobre 12
![Page 34: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/34.jpg)
Contribuire a un progetto
martedì 16 ottobre 12
![Page 35: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/35.jpg)
Contribuire a un progetto
$ composer.phar create-project dms/dms --dev ~/dev/oss/dms
martedì 16 ottobre 12
![Page 36: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/36.jpg)
Contribuire a un progetto
$ composer.phar create-project dms/dms --dev ~/dev/oss/dms
Tramite l’opzione --dev il sistema scarica anche le librerie necessarie per contribuire ad un progetto
martedì 16 ottobre 12
![Page 37: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/37.jpg)
autoload.php
martedì 16 ottobre 12
![Page 38: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/38.jpg)
autoload.php
Composer genererà un file per il loading di tutte le tue librerie
martedì 16 ottobre 12
![Page 39: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/39.jpg)
autoload.php
Composer genererà un file per il loading di tutte le tue librerie
vendor/autoload.php
martedì 16 ottobre 12
![Page 40: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/40.jpg)
composer everyday
martedì 16 ottobre 12
![Page 41: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/41.jpg)
composer everyday
composer.json
martedì 16 ottobre 12
![Page 42: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/42.jpg)
composer everyday
Lista delle dipendenzecomposer.json
martedì 16 ottobre 12
![Page 43: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/43.jpg)
composer everyday
Lista delle dipendenzecomposer.json
composer.lock
martedì 16 ottobre 12
![Page 44: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/44.jpg)
composer everyday
Lista delle dipendenzecomposer.json
Dipendenze esistenticomposer.lock
martedì 16 ottobre 12
![Page 45: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/45.jpg)
UPDATE
martedì 16 ottobre 12
![Page 46: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/46.jpg)
UPDATE
★ lettura di composer.json
martedì 16 ottobre 12
![Page 47: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/47.jpg)
UPDATE
★ lettura di composer.json
★ download delle librerie necessarie
martedì 16 ottobre 12
![Page 48: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/48.jpg)
UPDATE
★ lettura di composer.json
★ download delle librerie necessarie
★ scrittura del file composer.lock
martedì 16 ottobre 12
![Page 49: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/49.jpg)
INSTALL
martedì 16 ottobre 12
![Page 50: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/50.jpg)
INSTALL
★ lettura di composer.json
martedì 16 ottobre 12
![Page 51: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/51.jpg)
INSTALL
★ lettura di composer.json
★ controllo del file composer.lock
martedì 16 ottobre 12
![Page 52: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/52.jpg)
INSTALL
★ lettura di composer.json
★ controllo del file composer.lock
★ recupero delle versioni “lockate”
martedì 16 ottobre 12
![Page 53: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/53.jpg)
martedì 16 ottobre 12
![Page 54: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/54.jpg)
composer.lock in versioning
martedì 16 ottobre 12
![Page 55: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/55.jpg)
composer.lock
composer.lock in versioning
martedì 16 ottobre 12
![Page 56: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/56.jpg)
composer.lock
composer install
composer.lock in versioning
martedì 16 ottobre 12
![Page 57: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/57.jpg)
composer.lock
composer install
composer.lock in versioning
Certezza di avere tutti i sistemi allineati
martedì 16 ottobre 12
![Page 58: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/58.jpg)
martedì 16 ottobre 12
![Page 59: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/59.jpg)
{ "repositories": [ { "type": "package", "package": { "name": "smarty/smarty", "version": "3.1.7", "dist": { "url": "http://www.smarty.net/files/Smarty-3.1.7.zip", "type": "zip" }, "source": { "url": "http://smarty-php.googlecode.com/svn/", "type": "svn", "reference": "tags/Smarty_3_1_7/distribution/" } } } ]}
N!.-C!"p#$r P'*4'/$
martedì 16 ottobre 12
![Page 60: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/60.jpg)
{ "repositories": [ { "type": "package", "package": { "name": "smarty/smarty", "version": "3.1.7", "dist": { "url": "http://www.smarty.net/files/Smarty-3.1.7.zip", "type": "zip" }, "source": { "url": "http://smarty-php.googlecode.com/svn/", "type": "svn", "reference": "tags/Smarty_3_1_7/distribution/" } } } ]}
“package”: on-the-fly package, injecting a composer.json
N!.-C!"p#$r P'*4'/$
martedì 16 ottobre 12
![Page 61: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/61.jpg)
{ "repositories": [ { "type": "package", "package": { "name": "smarty/smarty", "version": "3.1.7", "dist": { "url": "http://www.smarty.net/files/Smarty-3.1.7.zip", "type": "zip" }, "source": { "url": "http://smarty-php.googlecode.com/svn/", "type": "svn", "reference": "tags/Smarty_3_1_7/distribution/" } } } ]}
SVN / Git
“package”: on-the-fly package, injecting a composer.json
N!.-C!"p#$r P'*4'/$
martedì 16 ottobre 12
![Page 62: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/62.jpg)
I .$$- (+)0 PEAR p'*4'/$...No Problem!
martedì 16 ottobre 12
![Page 63: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/63.jpg)
{ "repositories": [ { "type": "pear", "url": "http://pear2.php.net" } ], "require": { "pear-pear2.php.net/PEAR2_Text_Markdown": "*", "pear-pear2/PEAR2_HTTP_Request": "*" }}
martedì 16 ottobre 12
![Page 64: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/64.jpg)
{ "repositories": [ { "type": "pear", "url": "http://pear2.php.net" } ], "require": { "pear-pear2.php.net/PEAR2_Text_Markdown": "*", "pear-pear2/PEAR2_HTTP_Request": "*" }}
“pear”: official PEAR and custom PEAR channels
martedì 16 ottobre 12
![Page 65: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/65.jpg)
{ "repositories": [ { "type": "pear", "url": "http://pear2.php.net" } ], "require": { "pear-pear2.php.net/PEAR2_Text_Markdown": "*", "pear-pear2/PEAR2_HTTP_Request": "*" }}
“pear”: official PEAR and custom PEAR channels
Remember the prefix!
martedì 16 ottobre 12
![Page 66: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/66.jpg)
{ "repositories": [ { "type": "pear", "url": "http://pear2.php.net" } ], "require": { "pear-pear2.php.net/PEAR2_Text_Markdown": "*", "pear-pear2/PEAR2_HTTP_Request": "*" }}
“pear”: official PEAR and custom PEAR channels
Remember the prefix!
Warning: PEAR causes a overhead of requests! !
martedì 16 ottobre 12
![Page 67: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/67.jpg)
Script: composer eventmartedì 16 ottobre 12
![Page 68: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/68.jpg)
martedì 16 ottobre 12
![Page 69: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/69.jpg)
“oggi avrei voglia di qualcosa di buono...”
martedì 16 ottobre 12
![Page 70: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/70.jpg)
packagist.orgmartedì 16 ottobre 12
![Page 71: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/71.jpg)
martedì 16 ottobre 12
![Page 72: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/72.jpg)
martedì 16 ottobre 12
![Page 73: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/73.jpg)
martedì 16 ottobre 12
![Page 74: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/74.jpg)
martedì 16 ottobre 12
![Page 75: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/75.jpg)
$ composer.phar search filter
dms/dms-filter-bundle : DMS Filter Bundle, makes Annotation based ...lexik/form-filter-bundle : This bundle aim to provide classes to build...rollerworks/recordfilter-bundle : Record search-filtering bundle for Symfonybrikou/zend_filter : Zend Framework Filter Libraryext-filter : The filter PHP extensiondms/dms-filter : DMS Library, includes various bundles and ...shtumi/useful-bundle : Symfony ShtumiUsefulBundle
martedì 16 ottobre 12
![Page 76: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/76.jpg)
martedì 16 ottobre 12
![Page 77: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/77.jpg)
$ composer.phar show dms/dms-filter-bundle
name : dms/dms-filter-bundledescrip. : DMS Filter Bundle, makes Annotation based entity filtering availablein Symfonykeywords : symfony, bundle, filter, dmsversions : dev-master, v1.1.1, v1.1, 1.0.2, 1.0.1, 1.0.0type : symfony-bundlelicense : MITsource : [git] https://github.com/rdohms/DMSFilterBundle v1.1.1dist : [zip] https://github.com/rdohms/DMSFilterBundle/zipball/v1.1.1 v1.1.1names : dms/dms-filter-bundleautoload
psr-0
DMS\Bundle\FilterBundle => .requires
php >=5.3.2dms/dms-filter >=1.0.2
martedì 16 ottobre 12
![Page 78: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/78.jpg)
martedì 16 ottobre 12
![Page 79: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/79.jpg)
Compiti a casahttps://github.com/composer/satis
Satis - Package Repository Generator
Simple static Composer repository generator.
It uses any composer.json file as input and dumps all the required (according to their version constraints)
packages to a Composer Repository file.
martedì 16 ottobre 12
![Page 80: Composer](https://reader033.fdocumenti.com/reader033/viewer/2022051817/5490be70b4795952258b45c3/html5/thumbnails/80.jpg)
Link
★ http://getcomposer.org
★ https://github.com/composer/composer
★ http://packagist.org
★ http://www.slideshare.net/rdohms/composer-putting-dependencies-on-the-score
martedì 16 ottobre 12