Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Composer - Менеджер пакетов для PHP. Серебрянна...
Search
fwdays
November 14, 2011
Programming
2
1k
Composer - Менеджер пакетов для PHP. Серебрянная пуля?
fwdays
November 14, 2011
Tweet
Share
More Decks by fwdays
See All by fwdays
Symfony best practices и не только Олег Зинченко
fwdays
0
2.1k
Beyond Testing Михаил Боднарчук
fwdays
0
810
Yii2 - на пути от Alpha до GA. Взгляд с практической стороны Александр Бордун
fwdays
0
1.9k
Laravel 4: простота во всем. Евгений Косинский
fwdays
0
1k
Маленькая библиотека для большой компании. Антон Шевчук
fwdays
0
3.8k
Phalcon. Что нового? Александр Торош
fwdays
0
1.2k
Выбираем поисковик умом головы. Андрей Аксенов
fwdays
0
1.4k
Past, Present, and Future: The Evolution of PHP Development. Nate Abele
fwdays
0
810
Функциональный тулчейн Nix
fwdays
1
480
Other Decks in Programming
See All in Programming
CSC307 Lecture 01
javiergs
PRO
0
690
今から始めるClaude Code超入門
448jp
8
8.6k
「ブロックテーマでは再現できない」は本当か?
inc2734
0
850
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
400
MUSUBIXとは
nahisaho
0
130
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
190
高速開発のためのコード整理術
sutetotanuki
1
390
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.8k
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.5k
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
1
230
Apache Iceberg V3 and migration to V3
tomtanaka
0
150
組織で育むオブザーバビリティ
ryota_hnk
0
170
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.3k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
180
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
320
Leo the Paperboy
mayatellez
4
1.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
98
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
220
Testing 201, or: Great Expectations
jmmastey
46
8k
Statistics for Hackers
jakevdp
799
230k
Building the Perfect Custom Keyboard
takai
2
680
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
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? =)