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, @PHPBelfast #2
Search
Christopher Turner
September 26, 2013
Programming
110
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Composer, @PHPBelfast #2
Introduction to Composer and how to utilise it's power for creating projects with ease.
Christopher Turner
September 26, 2013
Other Decks in Programming
See All in Programming
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
Agents on Rails - Rails at Scale 2026
irinanazarova
0
560
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
contenteditable と日本語入力に向き合う
colorful12
0
200
APNsからLive Activityを開始する話
yumnumm
0
170
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.6k
JIS keyboard support in Omarchy
lef237
0
110
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
32k
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
Domain-Driven Transformation
hschwentner
2
2.3k
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Designing for Performance
lara
612
70k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Faster Mobile Websites
deanohume
310
32k
Building Applications with DynamoDB
mza
96
7.2k
Deep Space Network (abreviated)
tonyrice
0
370
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Transcript
h"ps://getcomposer.org
Composer Dependency Manager for PHP
What Are Dependencies? Libraries that a project relies on
for itself to operate.
What Is A Dependency Manager? A uAlity to manage
a project’s dependencies. Manages dependencies of dependencies and so on…
Hello, Composer! • PHP’s soluAon to Dependency Management
• Inspired by Node’s NPM (Node Package Manager) • Open Source • PSR-‐0 • Symfony community
Packagist • hOps://packagist.org • Composer packages archive
• Searching libraries • CreaAng new projects • Requiring libraries
Installing Composer $ curl –sS \ https://getcomposer.org/installer | php
Searching Libraries $ composer search
CreaAng a Project $ composer create-project
$ composer create-project • Downloads libraries package • Requires
libraries dependencies • Project package === library package
Requiring Libraries $ composer require
$ composer require • Downloads required library package •
Updates project dependencies
composer.json • Sets up Project as a Composer package
• Defines project dependencies • Sets dependency constraints • Maps autoloaders • Execute pre/post scripts • Commit composer.json to your repository
composer.lock • Records required dependencies • Locks dependency
versions • Used for installing your project elsewhere • Commit composer.lock to your repository!!!!!!!
Installing Dependencies $ composer install
$ composer install • Finds dependencies in composer.json •
Downloads missing libraries • Updates libraries set in composer.lock
UpdaAng Dependencies $ composer update
$ composer update • Checks libraries for updates •
Downloads out of date dependencies • Updates composer.lock
Using Your Dependencies <?php // project root require_once(__DIR__.’/vendor/autoload.php’); That’s
it, simples. • All libraries loaded via – PSR-‐0 || PEAR || Class Maps || SPL
CreaAng Libraries $ composer init
Dependency DefiniAons • Libraries are defined like: <vendor>/<package>
• SemanAc-‐like versioning: 1.2.3-suffix “symfony/forms”: “2.3.*”, “knplabs/knp-menu”: “1.0-RC2”
OpAmising Dependencies $ composer dump-‐autoload \ -‐-‐opAmize
$ composer dump-autoload -o • Autoloaders are heavy processes
• Symfony, Zend, Laravel etc. – several thousand classes • Always opAmise when in producAon
Debugging Dependencies $ composer status $ composer validate
$composer diagnose
Tips and Caveats
Install Globally $ mv composer.phar \ /usr/local/bin/composer
Help Is On Hand $ composer help <command>
Be More Verbose $ composer –vvv <command>
Minimum Stability Trap “minimum-‐stability”: “stable”
Closed Source, WHY? :@ hOps://github.com/composer/saAs
$talker->sayThanks(); array_walk($listeners, ‘askQuestion’);