Composer

667 views

Published on

Presentazione di composer per l'incontro del PHP User Group Milano del 16 ottobre 2012

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
667
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
11
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Composer

  1. 1. #pugMi 16/10/2012 COMPOSER E le dipendenze non sono più un problemamartedì 16 ottobre 12
  2. 2. martedì 16 ottobre 12
  3. 3. Esiste già PEAR!martedì 16 ottobre 12
  4. 4. Esiste già PEAR! ★ installazione poco pulitamartedì 16 ottobre 12
  5. 5. Esiste già PEAR! ★ installazione poco pulita ★ canali sparsimartedì 16 ottobre 12
  6. 6. Esiste già PEAR! ★ installazione poco pulita ★ canali sparsi ★ standard troppo restrittivimartedì 16 ottobre 12
  7. 7. Vantaggi di composermartedì 16 ottobre 12
  8. 8. Vantaggi di composer ★ installazione legata al progettomartedì 16 ottobre 12
  9. 9. Vantaggi di composer ★ installazione legata al progetto ★ repository centralimartedì 16 ottobre 12
  10. 10. Vantaggi di composer ★ installazione legata al progetto ★ repository centrali ★ non esiste processo di approvazionemartedì 16 ottobre 12
  11. 11. Vantaggi di composer ★ installazione legata al ★ tutte le dipendenze progetto sono gestite da un unico file ★ repository centrali ★ non esiste processo di approvazionemartedì 16 ottobre 12
  12. 12. Vantaggi di composer ★ installazione legata al ★ tutte le dipendenze progetto sono gestite da un unico file ★ repository centrali ★ composer.lock ★ non esiste processo di approvazionemartedì 16 ottobre 12
  13. 13. Problemamartedì 16 ottobre 12
  14. 14. Problema Ho bisogno di gestire delle versioni specifiche delle librerie che utilizza il mio progetto.martedì 16 ottobre 12
  15. 15. Problema Ho 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
  16. 16. Problema Ho 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
  17. 17. composermartedì 16 ottobre 12
  18. 18. composer Composer è un gestore di dipendenze per progetto che permette di specificare le versioni specifiche delle librerie utilizzate.martedì 16 ottobre 12
  19. 19. composer Composer è un gestore di dipendenze per progetto che 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
  20. 20. martedì 16 ottobre 12
  21. 21. Installazionemartedì 16 ottobre 12
  22. 22. Installazione $ curl -s http://getcomposer.org/installer | phpmartedì 16 ottobre 12
  23. 23. Installazione $ curl -s http://getcomposer.org/installer | php $ curl -s http://getcomposer.org/installer | php -- --install-dir=binmartedì 16 ottobre 12
  24. 24. Installazione $ curl -s http://getcomposer.org/installer | php $ curl -s http://getcomposer.org/installer | php -- --install-dir=bin $ composer.phar self-updatemartedì 16 ottobre 12
  25. 25. composer.jsonmartedì 16 ottobre 12
  26. 26. composer.json { "require": { "silex/silex": "1.0.*" }, "minimum-stability": "dev" }martedì 16 ottobre 12
  27. 27. composer.json { "require": { "silex/silex": "1.0.*" }, "minimum-stability": "dev" } Root del progettomartedì 16 ottobre 12
  28. 28. composer.json { "require": { "silex/silex": "1.0.*" }, "minimum-stability": "dev" } Root del progetto Requiremartedì 16 ottobre 12
  29. 29. composer.json { "require": { "silex/silex": "1.0.*" }, "minimum-stability": "dev" } Root del progetto Require Minimum stabilitymartedì 16 ottobre 12
  30. 30. martedì 16 ottobre 12
  31. 31. Bootstrap progettomartedì 16 ottobre 12
  32. 32. Bootstrap progetto $ composer.phar create-project fabpot/silex-skeleton ~/dev/myprojectmartedì 16 ottobre 12
  33. 33. 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 updatemartedì 16 ottobre 12
  34. 34. Contribuire a un progettomartedì 16 ottobre 12
  35. 35. Contribuire a un progetto$ composer.phar create-project dms/dms --dev ~/dev/oss/dmsmartedì 16 ottobre 12
  36. 36. 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 progettomartedì 16 ottobre 12
  37. 37. autoload.phpmartedì 16 ottobre 12
  38. 38. autoload.php Composer genererà un file per il loading di tutte le tue libreriemartedì 16 ottobre 12
  39. 39. autoload.php Composer genererà un file per il loading di tutte le tue librerie vendor/autoload.phpmartedì 16 ottobre 12
  40. 40. composer everydaymartedì 16 ottobre 12
  41. 41. composer everyday composer.jsonmartedì 16 ottobre 12
  42. 42. composer everyday composer.json Lista delle dipendenzemartedì 16 ottobre 12
  43. 43. composer everyday composer.json Lista delle dipendenze composer.lockmartedì 16 ottobre 12
  44. 44. composer everyday composer.json Lista delle dipendenze composer.lock Dipendenze esistentimartedì 16 ottobre 12
  45. 45. UPDATEmartedì 16 ottobre 12
  46. 46. UPDATE ★ lettura di composer.jsonmartedì 16 ottobre 12
  47. 47. UPDATE ★ lettura di composer.json ★ download delle librerie necessariemartedì 16 ottobre 12
  48. 48. UPDATE ★ lettura di composer.json ★ download delle librerie necessarie ★ scrittura del file composer.lockmartedì 16 ottobre 12
  49. 49. INSTALLmartedì 16 ottobre 12
  50. 50. INSTALL ★ lettura di composer.jsonmartedì 16 ottobre 12
  51. 51. INSTALL ★ lettura di composer.json ★ controllo del file composer.lockmartedì 16 ottobre 12
  52. 52. INSTALL ★ lettura di composer.json ★ controllo del file composer.lock ★ recupero delle versioni “lockate”martedì 16 ottobre 12
  53. 53. martedì 16 ottobre 12
  54. 54. composer.lock in versioningmartedì 16 ottobre 12
  55. 55. composer.lock in versioning composer.lockmartedì 16 ottobre 12
  56. 56. composer.lock in versioning composer.lock composer installmartedì 16 ottobre 12
  57. 57. composer.lock in versioning composer.lock composer install Certezza di avere tutti i sistemi allineatimartedì 16 ottobre 12
  58. 58. martedì 16 ottobre 12
  59. 59. N!.-C!"p#$r P*4/$ { "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/" } } } ] }martedì 16 ottobre 12
  60. 60. N!.-C!"p#$r P*4/$ { "repositories": “package”: on-the-fly package, injecting a composer.json [ { "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/" } } } ] }martedì 16 ottobre 12
  61. 61. N!.-C!"p#$r P*4/$ { "repositories": “package”: on-the-fly package, injecting a composer.json [ { "type": "package", "package": { "name": "smarty/smarty", "version": "3.1.7", "dist": { "url": "http://www.smarty.net/files/Smarty-3.1.7.zip", "type": "zip" SVN / Git }, "source": { "url": "http://smarty-php.googlecode.com/svn/", "type": "svn", "reference": "tags/Smarty_3_1_7/distribution/" } } } ] }martedì 16 ottobre 12
  62. 62. I .$$- (+)0 PEAR p*4/$... No Problem!martedì 16 ottobre 12
  63. 63. { "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
  64. 64. { "repositories": [ “pear”: official PEAR and custom PEAR channels { "type": "pear", "url": "http://pear2.php.net" } ], "require": { "pear-pear2.php.net/PEAR2_Text_Markdown": "*", "pear-pear2/PEAR2_HTTP_Request": "*" } }martedì 16 ottobre 12
  65. 65. { "repositories": [ “pear”: official PEAR and custom PEAR channels { "type": "pear", "url": "http://pear2.php.net" } ], "require": { "pear-pear2.php.net/PEAR2_Text_Markdown": "*", "pear-pear2/PEAR2_HTTP_Request": "*" } } Remember the prefix!martedì 16 ottobre 12
  66. 66. { "repositories": [ “pear”: official PEAR and custom PEAR channels { "type": "pear", "url": "http://pear2.php.net" } ], "require": { "pear-pear2.php.net/PEAR2_Text_Markdown": "*", "pear-pear2/PEAR2_HTTP_Request": "*" } } Remember the prefix! !! Warning: PEAR causes a overhead of requestsmartedì 16 ottobre 12
  67. 67. Script: composer eventmartedì 16 ottobre 12
  68. 68. martedì 16 ottobre 12
  69. 69. “oggi avrei voglia di qualcosa di buono...”martedì 16 ottobre 12
  70. 70. packagist.orgmartedì 16 ottobre 12
  71. 71. martedì 16 ottobre 12
  72. 72. martedì 16 ottobre 12
  73. 73. martedì 16 ottobre 12
  74. 74. martedì 16 ottobre 12
  75. 75. $ 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 Symfony brikou/zend_filter : Zend Framework Filter Library ext-filter : The filter PHP extension dms/dms-filter : DMS Library, includes various bundles and ... shtumi/useful-bundle : Symfony ShtumiUsefulBundlemartedì 16 ottobre 12
  76. 76. martedì 16 ottobre 12
  77. 77. $ composer.phar show dms/dms-filter-bundle name : dms/dms-filter-bundle descrip. : DMS Filter Bundle, makes Annotation based entity filtering available in Symfony keywords : symfony, bundle, filter, dms versions : dev-master, v1.1.1, v1.1, 1.0.2, 1.0.1, 1.0.0 type : symfony-bundle license : MIT source : [git] https://github.com/rdohms/DMSFilterBundle v1.1.1 dist : [zip] https://github.com/rdohms/DMSFilterBundle/ zipball/v1.1.1 v1.1.1 names : dms/dms-filter-bundle autoload psr-0 DMSBundleFilterBundle => . requires php >=5.3.2 dms/dms-filter >=1.0.2martedì 16 ottobre 12
  78. 78. martedì 16 ottobre 12
  79. 79. Compiti a casa https://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
  80. 80. Link ★ http://getcomposer.org ★ https://github.com/composer/composer ★ http://packagist.org ★ http://www.slideshare.net/rdohms/composer- putting-dependencies-on-the-scoremartedì 16 ottobre 12

×