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
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
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
140
Active Record Connection Adaptersにおける長年の課題に再び取り組む
yahonda
0
120
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
370
Refining Active Record
shugo
0
130
サブエージェントと Claude Mods で作る独自 Advisor ツールの話
kenichiodo
2
150
FOSS4Gを活用した自治体業務DXの試み
470715
0
160
その Valkey 使いこなしていますか?
onk
PRO
5
1.2k
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
180
AIは「聞けば答える」から「任せると自分で進める」へ - JACTIMペナン地域部会・ペナン三水会講演
knishioka
0
110
事業成長とデータ活用を止めないためのマネジメントへ挑戦
hiracky16
0
360
Cognition AI Japan - ウェビナー2_テストQA_運用監視
cogakira
0
140
【Data Engineering Summit2026_登壇資料】医療ビッグデータ×AIエージェントを支えるデータ基盤とハーネスエンジニアリング
jmdc_presentation
0
160
Featured
See All Featured
So, you think you're a good person
axbom
PRO
2
2.2k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
410
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
560
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
360
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
640
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
460
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
560
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
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ʹ ࣮ͯ͠Έ·ͨ͠ (ࠓே͙Β͍)
ਓபืूʂʂ