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
いりゃあせ、PHPカンファレンス名古屋2025 / Welcome to PHP Conference Nagoya 2025
ttskch
1
280
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
460
今年書いた技術記事で伸びたやつの自慢と自分の中では力作なのにさっぱり伸びなかったやつの供養 / My Tech Articles 2024
ttskch
2
90
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
47
33k
データベース/SQL超入門!完全初心者向けに世界一分かりやすく解説します
ttskch
1
5k
Symfony UX Autocompleteとかいう 顧客が本当に必要だったもの
ttskch
0
1.9k
就活生あるいは新人エンジニアさんへのお節介なアドバイス
ttskch
0
1.5k
symfony/pantherでWordleを解いてみた
ttskch
0
290
ついに、Webアプリでの帳票印刷のベストプラクティスを編み出しました💡
ttskch
16
19k
Other Decks in Programming
See All in Programming
SwiftUIで単方向アーキテクチャを導入して得られた成果
takuyaosawa
0
270
Formの複雑さに立ち向かう
bmthd
1
850
さいきょうのレイヤードアーキテクチャについて考えてみた
yahiru
3
750
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
6
4k
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
0
200
Pulsar2 を雰囲気で使ってみよう
anoken
0
240
パスキーのすべて ── 導入・UX設計・実装の紹介 / 20250213 パスキー開発者の集い
kuralab
3
790
DROBEの生成AI活用事例 with AWS
ippey
0
130
一休.com のログイン体験を支える技術 〜Web Components x Vue.js 活用事例と最適化について〜
atsumim
0
520
PHPカンファレンス名古屋2025 タスク分解の試行錯誤〜レビュー負荷を下げるために〜
soichi
1
200
苦しいTiDBへの移行を乗り越えて快適な運用を目指す
leveragestech
0
630
ペアーズでの、Langfuseを中心とした評価ドリブンなリリースサイクルのご紹介
fukubaka0825
2
330
Featured
See All Featured
A designer walks into a library…
pauljervisheath
205
24k
Visualization
eitanlees
146
15k
Done Done
chrislema
182
16k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
133
33k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
240
Designing for Performance
lara
604
68k
Faster Mobile Websites
deanohume
306
31k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
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