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
Transcript
30 slides
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ʹ ࣮ͯ͠Έ·ͨ͠ (ࠓே͙Β͍)
ਓபืूʂʂ
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
55k
極める!メソッドチェーン #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
2.1k
グローバル展開を支える量子的なサービス設計 #mercariday / mercariday2017-api
hirak
22
14k
Composerプラグインを作ってみよう /phpcon2016
hirak
5
14k
Other Decks in Technology
See All in Technology
Active Directory と Entra ID のむむむな関係
murachiakira
PRO
4
1.8k
会社説明資料_最新版
demaecan
0
32k
AWS Quick 入門 | 目指せ Quick マスター 01
inariku
PRO
2
310
公共システムAdventCalendar2026
toru_kubota
0
300
高品質と高スピードを支える品質のシフトレフトのアプローチ
goyoki
0
180
プロダクションコードにおける encoding/json から encoding/json/v2 へのスムーズな移行
sansantech
PRO
1
370
令和の今、あらためて IAM を考える。アクセスキーを「無くせない現実」との向き合い方
kazzpapa3
0
620
cdkd (CDK Direct)
gotok365
4
290
DBTS2026 盛り上がってますか!?Databricksが実現するAI時代のデータ基盤
akuwano
1
200
Kiro Crew 入門 (手を離しても進む仕事) | 目指せ Kiro マスター 11
inariku
PRO
4
690
2026 Apache Flink Community Checkpoint
rmetzger
0
230
セキュリティ専任チームなしで攻撃を先回りするSREが実践したSIEM on Amazon OpenSearch Service
cscengineer
PRO
1
760
Featured
See All Featured
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
630
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
530
Fireside Chat
paigeccino
43
4.1k
BBQ
matthewcrist
90
10k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
380
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
The browser strikes back
jonoalderson
0
1.9k
Building Applications with DynamoDB
mza
96
7.3k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
750
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
560
How to build a perfect <img>
jonoalderson
1
6.2k