Composer - PHP įrankis trečių šalių bibliotekų ir priklausomybių valdymui

Composer - PHP įrankis trečių šalių bibliotekų ir priklausomybių valdymui

Nustokim kopijuot, pradėkim komponuot!
Greitas projekto aplinkos paruošimas.
Pasidaryk pats.
Apribojimai

D33978d700aad0545999e6e1a87201eb?s=128

Alfonsas Cirtautas

January 09, 2013
Tweet

Transcript

  1. Composer Nustokim kopijuot, pradėkim komponuot! 2013-01-09 Alfonsas Cirtautas @acirtautas #KaunasPHP

    v.1
  2. Composer Nustokim kopijuot, pradėkim komponuot!

  3. Composer Trečių šalių bibliotekų ir priklausomybių valdymo įrankis PHP projekto

    ribose. • Lanksčiai konfiguruojamas • Lengvai prieinamas • Paprastai atnaujinamas Projektas įkvėptas Node.js/npm ir Ruby on Rails/bundler
  4. Iš kur imami paketai ? Pakagist.org 6 305 paketai, 17

    433 versijos, 8 581 755 instaliacijos packagist.org/statistics Alternatyvos • Composer • VCS • Pear • Package
  5. Ko galiu reikalauti ? PHP platforma • Versija (php) *

    • Plėtiniai (ext-json) * • Bibliotekos (lib-openssl) * • Paketai (phpunit/phpunit) * Tik sistemos reikalavimų patikrinimui. Versijos 1.0.0 >=1.0 <1.0 <=1.0 >=1.0, <2.0 1.0.* ~1.2.3 Stabilumas @dev @alpha @beta @RC @stable
  6. Projekto aplinka 1 Aprašom projekto reikalavimus composer.json { "require": {

    "silex/silex": "1.0.*@dev" } } Parsisiunčiam composer.phar curl -s https://getcomposer.org/installer | php
  7. Projekto aplinka 2 Instaliuojam php composer.phar install Atnaujinam php composer.phar

    update Struktūra • vendor/ ◦ composer/ ◦ pimple/ ◦ silex/ ◦ symfony/ ◦ autoload.php • composer.phar • composer.json • composer.lock • index.php
  8. Projekto aplinka 3 Naudojam index.php require_once __DIR__. '/vendor/autoload.php'; $app =

    new Silex\Application(); Ups, čia jau ne mano tema :)
  9. Darbo aplinka { "require": { "silex/silex": "1.0.*@dev" }, "require-dev": {

    "phpunit/phpunit": ">=3.7", "mikey179/vfsStream": ">=1.0" } } Instaliuojant ar atnaujinant naudojam --dev php composer.phar install --dev php composer.phar update --dev
  10. Kuriam paketą { "name": "acirtautas/demo", "description": "Composer demo", "require": {

    "silex/silex": "1.0.*@dev" }, "require-dev": { "phpunit/phpunit": ">=3.7", "mikey179/vfsStream": ">=1.0" }, "autoload": { "psr-0": {"demo": "src/"} } }
  11. composer.json strukūra • name • description • version • type

    • keywords • homepage • time • license • authors • support • Package links ◦ require ◦ require-dev ◦ replace ◦ provide • suggest • autoload ◦ PSR-0 ◦ Classmap ◦ Files • include-path • target-dir • minimum-stability • repositories • config • scripts • extra • bin
  12. Ačiū Composer + Pakagist http://getcomposer.org https://pakagist.org Plačiau http://nelm.io/blog/2011/12/composer-part-1-what-why/ http://nelm.io/blog/2011/12/composer-part-2-impact/ http://2012.symfonycamp.org.ua/uploads/slides/composer/

    http://philsturgeon.co.uk/blog/2012/03/packages-the-way-forward-for-php/ 2013-01-09 Alfonsas Cirtautas @acirtautas #KaunasPHP v.1