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
packagist.jpの紹介と新機能 /#phpblt
Search
Hiraku NAKANO
July 20, 2016
Technology
2.9k
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.7k
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ツールを導入しても生産性はあがらない? カオナビが直面した 3つの壁と乗り越え方。/ Overcoming 3 Barriers to AI-Driven Productivity at kaonavi
kaonavi
0
460
基調講演:人とAIをつなぐIoTの今と未来 ー 「フィジカル」と「デジタル」が出会うその先へ【SORACOM Discovery 2026】
soracom
PRO
0
360
reFACToring
moznion
1
970
Escolhendo LLMs na Prática: Lições Reais em Busca Agêntica no Mercado Livre —TDC 2026 Floripa
jpbonson
0
110
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
PLaMoを毎日の開発で使い育てていく
pfn
PRO
0
140
データエンジニアこそ組織のオントロジーに向き合うべき — 問いに答えるAIから、事業を動かすAIへ
gappy50
6
2.6k
新しい SLO が良い感じにハマっている話
z63d
1
340
AI エージェント時代のデジタルアイデンティティ
fujie
1
1.2k
PLaMo 3.0 Primeの事後学習
pfn
PRO
0
200
AIエージェントの知識表現と推論に なぜグラフが使われるのか - 記号的AIの復権とニューラルAIとの統合
yohei1126
1
220
歴史から理解するクラウドインフラのしくみ
kizawa2020
0
190
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
41
2.6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Optimizing for Happiness
mojombo
378
71k
YesSQL, Process and Tooling at Scale
rocio
174
15k
ラッコキーワード サービス紹介資料
rakko
1
4.1M
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
460
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
The Spectacular Lies of Maps
axbom
PRO
1
880
My Coaching Mixtape
mlcsv
0
180
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Accessibility Awareness
sabderemane
1
170
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ʹ ࣮ͯ͠Έ·ͨ͠ (ࠓே͙Β͍)
ਓபืूʂʂ