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
packagist.jpの紹介と新機能 /#phpblt
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Hiraku NAKANO
July 20, 2016
Technology
3k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
packagist.jpの紹介と新機能 /#phpblt
Hiraku NAKANO
July 20, 2016
More Decks by Hiraku NAKANO
See All by Hiraku NAKANO
iD決済を支える技術 / #merpay_techtalk
hirak
33
7.3k
github.com/mercari の今と昔 /github-mercari
hirak
8
3.2k
PHPStanで始める継続的静的解析 #phperkaigi /php-static-analysis
hirak
14
54k
極める!メソッドチェーン #phpstudy / fluent-interface
hirak
8
3.1k
evalこそパワー #phpkansai / phpkansai2017
hirak
2
1.8k
PHPのエラーと例外再入門 / php-error-and-exception
hirak
19
20k
メルカリ JP Tech Side / mercari-jp-tech-side
hirak
7
2k
グローバル展開を支える量子的なサービス設計 #mercariday / mercariday2017-api
hirak
22
14k
Composerプラグインを作ってみよう /phpcon2016
hirak
5
14k
Other Decks in Technology
See All in Technology
AI に書かせたその API、 “信頼” できますか?
nagix
0
110
ソフトウェアDNAとクラウドエージェントのススメ
cloudace
0
100
Minecraft JavaのMODをSwiftで作る
1mash0
0
160
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
1.9k
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
160
20260912_スクフェス三河
kgnkhkr
0
380
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
1
1.6k
Reactの設計論
uhyo
24
13k
AIネイティブプロダクトで顧客価値を最大化するプロダクトエンジニアとFDEの協働
righttouch
PRO
0
310
日経電子版を支えていく Kasane Design System/fec_fukuoka
nikkei_engineer_recruiting
0
1.5k
あるけみー式LTスライド作成術
alchemy1115
1
210
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
500
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Designing Powerful Visuals for Engaging Learning
tmiket
1
550
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
520
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
Un-Boring Meetings
codingconduct
0
420
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
390
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
How to train your dragon (web standard)
notwaldorf
97
6.8k
Amusing Abliteration
ianozsvald
1
300
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Transcript
packagist.jpͷհͱ ৽ػೳ PHPBLT #5
ࣗݾհ • @Hiraku (த ) • PHPΧϯϑΝϨϯεؔ2016Ͱ جௐߨԋ͖ͯͨ͠ͱ͜ΖͰ͢ http://tech.mercari.com/entry/2016/07/20/ 160602
ComposerͷߴԽ • hirak/prestissimo ͱ͍͏ComposerϓϥάΠ ϯΛ࡞͍ͬͯ·͢ɻͬͯΈͯͶʂ composer global require 'hirak/prestissimo' ͋ͱউखʹinstall/update࣌ʹൃಈ
ࠓpackagistͷΛ ͠·͢
None
None
packagist.jp • packagist.org Λ2͓͖ʹϛϥʔϦϯάͯ͠ ͍·͢ • ຊՈͷΘΓʹࢦఆ͢Δͱcomposer update ͕രʹͳΔ (ίϚϯυҰߦ)
composer conf -g repos.packagist composer https://packagist.jp
2͝ͱϛϥʔϦϯάΛ ࣮ݱ͢Δٕज़
ී௨ʹΔͱग़དྷͳ͍ • packagistͷશσʔλΛૉʹμϯϩʔυ͢ Δͱ͔͔࣌ؒΔ • ొύοέʔδʹൺྫ͕͔͔ͯ࣌ؒ͠Δ ΈͰഁ͢Δ • ࠩߋ৽͔͠ͳ͍
packagistͷJSON3֊ • packages.json • provider-includes.json (ύοέʔδͷϦετใɺ8~9ݸ͙Β͍) • p/vendor/package.json (ύοέʔδ໊͝ͱ) •
શ෦Ͱ6ສϑΝΠϧ͙Β͍
packages.json ͷத { "packages": [], "notify": "https://packagist.org/downloads/%package%", "notify-batch": "https://packagist.org/downloads/", "providers-url":
"/p/%package%$%hash%.json", "search": "https://packagist.org/search.json?q=%query%&type=%type%", "provider-includes": { "p/provider-2013$%hash%.json": { "sha256": "4fe03986e11f75b311587794dec3504703f3d6f7c94f8fa9209f1352ecd1e64d" }, "p/provider-2014$%hash%.json": { "sha256": "b4e49c6935fb2b001aec67c541d48dea449937d19d8dda54c3bc6a53243f05cf" },
provider-includes.json { "providers": { "0s1r1s/dev-shortcuts-bundle": { "sha256": "6c7710a1ca26d3c0f9dfc4c34bc3d6e71ed88d8783847ed82079601401e29b18" }, "0x20h/monoconf":
{ "sha256": "9515a0ee8fce44be80ed35292384c2f908cabbf6a710099f4743b710bc47607e" }, "11ya/excelbundle": { "sha256": "65dccb7f2d57c09c19519c1b3cdf7cbace1dfbf46f43736c2afcb95658d9c0f1" }, "1stvamp/phpweekly.info": { "sha256": "f4bbac09368b0b8c7122cae19f1ce57fa5808d691fa58b6aac9e257920dded71" }, "2085020/zendframework1": { "sha256": "360c3ede3c3572ef5f0d0209deac197e6d7f59d7899cad0ec9a45f7d5de9fa84" },
Լͷϋογϡͷൖ • packages.json͕provider-includesͷϋογϡ Λ͑Δ • provider-includes.json͕֤packageͷϋο γϡΛ͑Δ • ϋογϡ͕ҧ͏=ߋ৽͕͋ͬͨ߹ͷΈ
ࠩߋ৽ͷݪཧ • jsonϑΝΠϧͷsha256Λܭࢉɺผͷ͕͋Δ ͱ͖͚ͩμϯϩʔυ • 2͓͖ͩͱ10~20ϑΝΠϧ͙Β͍ͰࡁΉͷͰ ߴʹߋ৽Ͱ͖Δ • ͍͖ͳΓcronճ͢ͱࢮ͵ ༧Ί࣌ؒΛ͔͚ͯશ෦μϯϩʔυ͓ͯ͘͠
packagist๊͕͍͑ͯΔ
provider-includes.jsonͷ ංେԽ
provider-includes.json ͱ • ύοέʔδ໊ͷҰཡͱɺͦͷϋογϡΛه ͨ͠ϑΝΠϧ • 9ϑΝΠϧʹׂ͞ΕͯΔ(20167݄20ݱ ࡏ) • composer
update࣌ʹશ෦μϯϩʔυ͢Δ
provider-includes.json { "providers": { "0s1r1s/dev-shortcuts-bundle": { "sha256": "6c7710a1ca26d3c0f9dfc4c34bc3d6e71ed88d8783847ed82079601401e29b18" }, "0x20h/monoconf":
{ "sha256": "9515a0ee8fce44be80ed35292384c2f908cabbf6a710099f4743b710bc47607e" }, "11ya/excelbundle": { "sha256": "65dccb7f2d57c09c19519c1b3cdf7cbace1dfbf46f43736c2afcb95658d9c0f1" }, "1stvamp/phpweekly.info": { "sha256": "f4bbac09368b0b8c7122cae19f1ce57fa5808d691fa58b6aac9e257920dded71" }, "2085020/zendframework1": { "sha256": "360c3ede3c3572ef5f0d0209deac197e6d7f59d7899cad0ec9a45f7d5de9fa84" },
͜Ε͕ͱʹ͔͘σΧ͍
શ෦Ͱ10MB͙Β͍ 768636 p-provider-2013.json 1673380 p-provider-2014.json 1035890 p-provider-2015-10.json 2219849 p-provider-2015.json 1532856
p-provider-2016-01.json 2365598 p-provider-2016-04.json 447928 p-provider-2016-07.json 173629 p-provider-archived.json 699951 p-provider-latest.json 10917717 total
10MBͬͯผʹେ͖͘ͳ͍Μ ͡Όʁͱࢥͬͨਓ͍
ొύοέʔδʹԠͯ͡૿େ ͢ΔϑΝΠϧͳͷͰ͢ • ࠓ10ສύοέʔδͰ10MB͚ͩͲɺ • 100ສύοέʔδͳΒ100MB • 1000ສύοέʔδͳΒ1GB • composer
update͢Δʹμϯϩʔυ͢Δ
ճઢ͕ࡉ͍ͱͭΒ͍ͭ • ҰԠɺύοέʔδͷߋ৽සͷߴ͞͝ͱʹϑΝ Πϧׂ͕͞Ε͍ͯΔ • ༧ଌΛϛεΔͱ͍ͬͺ͍ߋ৽͞ΕΔ • Ωϟογϡ͕ͳ͔ͬͨΒҙຯ͕ແ͍
͜ͷղܾͷͨΊʹ ࣮ݧతʹ࡞ΒΕͨػೳ͕
lazy-providers
ϦϙδτϦઃఆΛগ͠มߋ $ composer config -ge # ΤσΟλىಈ ~/.composer/config.json { "config":
{}, "repositories": { "packagist": { "type": "composer", "url": "https://packagist.jp", "force-lazy-providers": true } } }
lazyϞʔυ • providerΛμϯϩʔυ͠ͳ͍(10MBઅ) • ύοέʔδใΛϋογϡͳ͠Ͱɺ If-Modified-Since͖Ͱऔಘ • 304͕ฦΕΩϟογϡΛ͏
ߟ • 10MBͷઅخ͍͠ • ϦΫΤετͷ૯૿͑Δ (ຊՈpackagist.orgΛ͍ͬͯͨΒΉ͠Ζ͘ͳΓ ͦ͏) • ࿈ଓͯ͠composer update͢ΔͳΒएׯ͘ͳΔ
͔
packagist.jpʹ ࣮ͯ͠Έ·ͨ͠ (ࠓே͙Β͍)
ਓபืूʂʂ