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
PHPでコマンドを作ってHomebrewで配布する
Search
Takashi Kanemoto
February 18, 2017
Programming
1
1.1k
PHPでコマンドを作ってHomebrewで配布する
Symfony Meetup #16 LT 資料
https://symfony.connpass.com/event/48990/
Takashi Kanemoto
February 18, 2017
Tweet
Share
More Decks by Takashi Kanemoto
See All by Takashi Kanemoto
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
47
26k
データベース/SQL超入門!完全初心者向けに世界一分かりやすく解説します
ttskch
1
4.1k
Symfony UX Autocompleteとかいう 顧客が本当に必要だったもの
ttskch
0
1.7k
就活生あるいは新人エンジニアさんへのお節介なアドバイス
ttskch
0
1.4k
symfony/pantherでWordleを解いてみた
ttskch
0
240
ついに、Webアプリでの帳票印刷のベストプラクティスを編み出しました💡
ttskch
16
19k
phpenvやめました🤦♂️
ttskch
0
1.1k
PHPでCSVのインポート/エクスポートに立ち向かう
ttskch
1
2.1k
phpenv on Mac 難しすぎワロタ
ttskch
0
530
Other Decks in Programming
See All in Programming
オートマトン学習しろ / Do automata learning
makenowjust
3
130
事業フェーズの変化に対応する 開発生産性向上のゼロイチ
masaygggg
0
190
Kotlin 2.0が与えるAndroid開発の進化
masayukisuda
1
330
unique パッケージから学ぶ interning と weak reference @ Asakusa.go#3
karamaru
2
780
開発を加速する共有Swift Package実践
elmetal
PRO
0
400
長期運用プロダクトの開発速度を維持し続けるためのリファクタリング実践例
wataruss
8
2.7k
How to Break into Reading Open Source
kaspth
1
210
いまから追い上げる、Jetpack Compose トレーニング
nyafunta9858
0
300
今インフラ技術をイチから学び直すなら
yuhta28
1
130
意外とフォントが大事だった話 / Font Issues on Internationalization
fumi23
0
110
Swift Concurrencyとレースコンディション
objectiveaudio
1
410
Modular Monolith Go Server with GraphQL Federation + gRPC
110y
1
580
Featured
See All Featured
Optimizing for Happiness
mojombo
375
69k
Optimising Largest Contentful Paint
csswizardry
30
2.8k
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
Building Adaptive Systems
keathley
36
2.1k
A Modern Web Designer's Workflow
chriscoyier
691
190k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Rails Girls Zürich Keynote
gr2m
93
13k
It's Worth the Effort
3n
182
27k
From Idea to $5000 a Month in 5 Months
shpigford
379
46k
How to Think Like a Performance Engineer
csswizardry
16
950
Building Flexible Design Systems
yeseniaperezcruz
325
37k
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
Transcript
PHPでコマンドを作って Homebrewで配布する #symfony_meetup 2017.02.18 @ttskch 1 / 32
@ttskch(たつきち) 名古屋から来ました (株)カルテットコミュニケーションズCTO PHP歴5年, Symfony歴3年 ちょっとだけお手伝いしました 2 / 32
3 / 32
4 / 32
5 / 32
6 / 32
カルテットコミュニケーションズ 絶賛PHPer募集中! リスティング広告運用ツール「Lisket」を提供 時代を先取るホワイト企業です 7 / 32
カルテットコミュニケーションズ エンジニアの働きやすさ超大事にしてます 8 / 32
カルテットコミュニケーションズ SNSかメールでお気軽にご連絡ください 9 / 32
本題 10 / 32
今日伝えたいこと PHPerにもできる! コマンド自作&配布 11 / 32
1. PHPでコマンドを作る 12 / 32
symfony/console 13 / 32
symfony/console コマンドを作るとき一番面倒なのがUIの作り込み 引数の扱い、出力の整形、ヘルプ、etc symfony/consoleを使えばその辺全部いい感じに やってくれる コマンドの処理を書くことに集中できる! 14 / 32
symfony/console $ composer require symfony/console 15 / 32
symfony/console 16 / 32
symfony/console 17 / 32
2. Homebrewで配布する 18 / 32
流れ 1. コマンドのソースをGitHubに上げる 2. Tap用のGitHubリポジトリを作る 3. Formula設定ファイルをTapリポジトリに置く 19 / 32
1. コマンドのソースをGitHubに上げる 20 / 32
1. コマンドのソースをGitHubに上げる あとで必要なのでタグを付けておく $ git tag 1.0.0 $ git push
origin 1.0.0 21 / 32
2. Tap用のGitHubリポジトリを作る 22 / 32
3. Formula設定ファイルをTap リポジトリに置く 1. でTapリポジトリをローカルにclone 2. で設定ファイルの雛形を作成 3. 設定ファイルを修正してpush brew
tap brew create 23 / 32
3-1. brew tap が作られる $ brew tap ttskch/greet /usr/local/Homebrew/Library/Taps/ttskch/homebrew- greet
24 / 32
3-2. brew create は対象ソースのtarballのURL https://github.com/ttskch/greet/archive/1.0.0.tar.gz $ brew create <URL> --tap
ttskch/greet <URL> 25 / 32
3-2. brew create に が自動で作られる /usr/local/Homebrew/Library/Taps/ttskch/homebrew- greet greet.rb 26 /
32
3-3. Formula設定ファイルを修正 class Greet < Formula desc "say hello" homepage
"https://github.com/ttskch/greet" url "https://github.com/ttskch/greet/archive/1.0.0.tar.gz" sha256 "515157fd5036dda9a32fa64870c87b03609a7d8c70bdc9037f00e77327ae8cac" depends_on "composer" => :build def install system "composer", "install" bin.install ["greet", "vendor"] end end 27 / 32
3-3. Formula設定ファイルを修正 で変更をcommit & push /usr/local/Homebrew/Library/Taps/ttskch/homebrew- greet 28 / 32
完了 29 / 32
やってみてください $ brew tap ttskch/greet $ brew install greet 30
/ 32
まとめ symfony/consoleでコマンドが簡単に作れます Homebrewで配布するのも意外と簡単です やってみると楽しいと思います 31 / 32
Thanks :) 32 / 32