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, @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
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
210
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
370
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
4.2k
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
160
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.5k
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
590
FDEが実現するAI駆動経営の現在地
gonta
2
280
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
700
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
490
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
320
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
590
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
140
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
350
Optimising Largest Contentful Paint
csswizardry
37
3.9k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
GraphQLとの向き合い方2022年版
quramy
50
15k
Site-Speed That Sticks
csswizardry
13
1.4k
Odyssey Design
rkendrick25
PRO
2
750
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
890
From π to Pie charts
rasagy
0
260
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’);