• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Gestione delle dipendenze con Composer
 

Gestione delle dipendenze con Composer

on

  • 1,177 views

2. Il problema della gestione delle dipendenze affligge da tempo qualsiasi sviluppatore che non voglia reinventare la ruota. Questo problema può essere affrontato da due punti di vista: quello dello ...

2. Il problema della gestione delle dipendenze affligge da tempo qualsiasi sviluppatore che non voglia reinventare la ruota. Questo problema può essere affrontato da due punti di vista: quello dello sviluppatore che ha bisogno di usare una libreria e quello dello sviluppatore che ha creato la propria libreria e vuole distribuirla
3. Una prima possibile soluzione al problema è: scaricare i sorgenti della libreria e installarli a mano. Questa soluzione ovviamente è molto scomoda e ha molti difetti: difficoltà di manutenzione, difficoltà di replicazione, difficoltà o impossibilità di versionamento. È stata mostrata solo per motivi "storici"
4. PEAR è stato per molto tempo lo standard de facto per la gestione delle librerie. Il suo problema principale era nella necessità di dover installare le librerie a livello di sistema, mentre spesso è necessario gestire versioni diverse su progetti diversi. Un altro problema è che è rimasto poco sviluppato e ancorato alla compatibilità con PHP4
5. Un altra possibile soluzione è la gestione delle dipendenze nel sistema di versioanmento: externals per subversion, submoduli per git, eccetera. Difetti di questo approccio: lo sviluppatore di librerie dovrebbe tenere un repository per ogni sistema, l'utilizzatore è costretto a gestire in contemporanea aggiornamenti delle revisioni del suo progetto e aggiornamenti delle librerie
6. Un approccio più recente e interessante è stato quello adottato da Symfony 2.0, cioè uno script di gestione scritto ad hoc. Purtroppo non era in grado di gestire le dipendenze indirette ed era legato strettamente a git
8. Il primo passo per usare Composer è installarlo. La procedura è molto semplice, trattandosi di uno script PHP da linea di comando: basta scaricare l'installer ed eseguirlo. Non obbligatorio, ma consigliato, spostare l'eseguibile sotto a un percorso incluso in $PATH. Pper sistemi non Unix-compatibili... non lo so! Arrangiatevi
9. L'installazione delle librerie è facile: basta eseguire il comando seguito dal parametro "install". Occorre però preparare un file di configurazione
10. Questo esempio di file di configurazione di Composer è tratto da Symfony Standard Edition, con alcune righe tagliate per questioni di spazio.
11. Vediamo ora un esempio su come pubblicare la propria libreria, tratta da un caso reale; un bundle per Symfony2 creato sotto PUGX. Il primo passo è quello di pubblicare il progetto su github
12. Questo è il file composer.json del bundle, con le sue dipendenze e le impostazioni per l'autoloading
13. Il passo successivo consiste nel pubblicare la libreria su Packagist, configurando le impostazioni relative all'integrazione con github
14. Tutto qui! Come direbbe il Principe, è fatta! Non serve niente di più di questo, è molto facile e consente di gestire dipendenze a cascata.
15. Ma se io avessi l'esigenza di usare una libreria che non è open source e quindi non posso mettere su github? Si possono impostare altri reposi

Statistics

Views

Total Views
1,177
Views on SlideShare
1,176
Embed Views
1

Actions

Likes
0
Downloads
4
Comments
0

1 Embed 1

http://www.slashdocs.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Gestione delle dipendenze con Composer Gestione delle dipendenze con Composer Presentation Transcript

    • Gestione delledipendenze con composer Massimiliano Arione PUG Roma, 26 novembre 2012
    • problemacome gestire le dipendenze?
    • soluzione 1a mano!
    • soluzione 2PEAR
    • soluzione 3nel versionamento svn:externals git submodule mercurial subrepo ...
    • soluzione 4script di gestione 2.0
    • LA soluzione
    • installazione$ curl -s https://getcomposer.org/installer | php$ sudo mv composer.phar /usr/local/bin/composer
    • uso$ composer install
    • composer.json{ "name": "symfony/framework-standard-edition", "require": { "php": ">=5.3.3", "symfony/symfony": "2.2.*", "doctrine/orm": ">=2.2.3,<2.4-dev", "doctrine/doctrine-bundle": "1.0.*", "twig/extensions": "1.0.*", "symfony/assetic-bundle": "2.1.*", "symfony/swiftmailer-bundle": "2.1.*", "symfony/monolog-bundle": "2.1.*", "sensio/distribution-bundle": "2.2.*", "sensio/framework-extra-bundle": "2.2.*", "sensio/generator-bundle": "2.2.*", "jms/security-extra-bundle": "1.4.*", "jms/di-extra-bundle": "1.3.*" },}
    • un esempio
    • un esempio{ "name": "pugx/autocompleter-bundle", "type": "symfony-bundle", "description": "Add an autocomplete type to forms", "license": "LGPL-3.0+", "minimum-stability": "dev", "require": { "symfony/framework-bundle": "2.1.*", "doctrine/orm": ">=2.2,<2.4-dev", "symfony/form": "2.1.*" }, "autoload": { "psr-0": { "PUGXAutocompleterBundle": "" } }, "target-dir": "PUGX/AutocompleterBundle"}
    • un esempio
    • a signo, è fatta!http://www.youtube.com/watch?v=DX_CcnN4i0k&t=5m25s
    • bonus: repo privati{ "require": { "pippo/mio-repo": "3.*", "pluto/altro-repo": "2.*" } "repositories": [ { "type": "vcs", "url": "git@bitbucket.org:pippo/repo.git" }, { "type": "vcs", "url": "http://svn.example.org/repo" } ]}
    • grazie!creditshttp://upload.wikimedia.org/wikipedia/commons/4/4d/Dependency_network_for_financial_data.jpghttp://static.guide.supereva.it/guide/sogni/trasloco.jpghttp://pear.php.net/downloads/pear-folder.svghttp://getcomposer.org/img/logo-composer-transparent.pnghttp://verdonepedia.xoom.it/Bianco_rosso_e_verdone/Mario_Brega_Bianco_rosso_e_verdone.jpg http://www.slideshare.net/garak