Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Composer - Менеджер пакетов для PHP. Серебрянна...
Search
fwdays
November 14, 2011
Programming
1.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Composer - Менеджер пакетов для PHP. Серебрянная пуля?
fwdays
November 14, 2011
More Decks by fwdays
See All by fwdays
Symfony best practices и не только Олег Зинченко
fwdays
0
2.2k
Beyond Testing Михаил Боднарчук
fwdays
0
910
Yii2 - на пути от Alpha до GA. Взгляд с практической стороны Александр Бордун
fwdays
0
2k
Laravel 4: простота во всем. Евгений Косинский
fwdays
0
1.1k
Маленькая библиотека для большой компании. Антон Шевчук
fwdays
0
3.9k
Phalcon. Что нового? Александр Торош
fwdays
0
1.2k
Выбираем поисковик умом головы. Андрей Аксенов
fwdays
0
1.5k
Past, Present, and Future: The Evolution of PHP Development. Nate Abele
fwdays
0
940
Функциональный тулчейн Nix
fwdays
1
560
Other Decks in Programming
See All in Programming
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
310
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
320
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
140
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
210
FreeBSDでZabbixを動かす
kenkino
0
310
Jetpack Compose メカニズム
skydoves
0
440
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
420
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
120
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
290
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
440
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
490
新卒PdEのリアル
ryu1013
1
500
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
300
Making Projects Easy
brettharned
120
6.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
How GitHub (no longer) Works
holman
316
150k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
500
Tell your own story through comics
letsgokoyo
1
1.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
Transcript
Composer — Package Management for PHP. Silver Bullet? Kirill chEbba
Chebunin Billix
[email protected]
http://github.com/chEbba @iamchEbba
Problem
Dependent Libraries
Dependent Libraries
Dependent Libraries
Many Separate Projects
Overview of Tools Python: easy_install, pip Ruby: gems
Java: maven, ivy C#(.NET): NuGet, NuPack PHP: PEAR/Pyrus
PEAR. Why NOT? #pyrus mypear = hack Channel1/Package1
!= Channel2/Package1 No “Source”, only “Dists” Special Package Type (+/-)
Composer. Silver Bullet?
Composer. Simple #wget http://getcomposer.org/composer.phar #vi /path/to/project/.composer.json #php
composer.phar install PEAR package on release?
Composer. File { "require": { "vendor/package1": "1.3.2", "vendor/package2": "1.*", "vendor/package3":
">=2.0.3" } }
Composer. Fundamentals Package Repository = Metadata Storage Separated
from Repository Unique Package Name = vendor/package Different Storage Types (Downloaders) “Source” & “Dist” Dependecy Resolver
Composer. Repository File "composer\/composer":{ "name":"composer\/composer", "description":"Package Manager", "maintainers":[], "versions":{ "master-dev":{
"require":{ "php":">=5.3.0", "symfony\/console":"2.0.5", "symfony\/finder":"2.0.5" } } } }
Composer. Repository PlatformRepository (php & extensions) ComposerRepository ($url/composer.json)
PearRepository (PEAR channel support) VcsRepository (github, git, svn, hg) LocalRepository?
Composer. Downloader "source":{ "type":"git", "url":"http:\/\/github.com\/composer\/composer.git", "reference":"e6c3929ea9f7d732ed3352dc06ed950af140ebf7", "shasum":"" }, "dist":{ "type":"zip",
"url":"<...>e6c3929ea9f7d732ed3352dc06ed950af140ebf7", "shasum":"e32a4bac17d56533393b856699491c4c02f3e1ab", "reference":"e6c3929ea9f7d732ed3352dc06ed950af140ebf7" }
Composer. Downloader ZipDownloader (dist) TarDownloader (dist: tar, tar.gz,
tar.bz2) PharDownloader (dist) PearDownloader (dist: uses tar) GitDownloader (source) HgDownloader (source)
Composer. Installer LibraryInstaller (vendor/*) "composer\/composer":{ "name":"composer\/composer", "description":"Package Manager", "type":"library"
}
Composer. Dependency Resolver OpenSUSE's Libzypp satsolver Requires
Conflicts Provides Replaces Recommends Suggests
Composer. Dependency Resolver "require":{ "php":">=5.3.0", "symfony\/console":"2.0.5", "symfony\/finder":"2.0.5" }
Composer. Autoload PSR-0 Autoloading (.composer/autoload.php) "versions":{ "master-dev":{ "autoload":{ "psr-0":{
"Composer":"src\/" } } } }
Questions? =)