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
44
21k
データベース/SQL超入門!完全初心者向けに世界一分かりやすく解説します
ttskch
1
3.3k
Symfony UX Autocompleteとかいう 顧客が本当に必要だったもの
ttskch
0
1.4k
就活生あるいは新人エンジニアさんへのお節介なアドバイス
ttskch
0
1.3k
symfony/pantherでWordleを解いてみた
ttskch
0
200
ついに、Webアプリでの帳票印刷のベストプラクティスを編み出しました💡
ttskch
16
19k
phpenvやめました🤦♂️
ttskch
0
790
PHPでCSVのインポート/エクスポートに立ち向かう
ttskch
1
1.9k
phpenv on Mac 難しすぎワロタ
ttskch
0
490
Other Decks in Programming
See All in Programming
TypeScriptとGraphQLで実現する 型安全なAPI実装 / TSKaigi 2024
hokaccha
5
2.9k
TypeScriptから始める VR生活
tamagokakeg
2
140
“Seeing Like a Programmer”—Resiliency, Limits, and Moral Hazards in Software Engineering (LambdaConf 2024)
chriskrycho
0
450
GitHub Actionsの痒いところを埋めるサードパーティーランナー
dora1998
2
290
Effectで作る堅牢でスケーラブルなAPIゲートウェイ / Robust and Scalable API Gateway Built on Effect
yasaichi
7
1.2k
RailsConf 2024: Riffing on Rails: sketch your way to better designed code
kaspth
1
220
そのコード、書いたらいくら?消したらいくら?
urban_side
0
120
Enjoy Creative Coding with Ruby (RubyKaigi2024)
chobishiba
0
1.4k
From LALR to IELR: A Lrama's Next Step
junk0612
0
110
Documentation testsの恩恵 / Documentation testing benefits
ssssota
1
580
Jetpack Composeとデザインシステム
rmakiyama
0
250
Open standards for building event-driven applications in the cloud
meteatamel
0
240
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
13
2.4k
Designing the Hi-DPI Web
ddemaree
276
33k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
14
8.4k
It's Worth the Effort
3n
180
27k
Building Effective Engineering Teams - LeadDev
addyosmani
33
1.9k
Stop Working from a Prison Cell
hatefulcrawdad
266
19k
Designing Experiences People Love
moore
136
23k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
Adopting Sorbet at Scale
ufuk
69
8.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
Faster Mobile Websites
deanohume
300
30k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
358
22k
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