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
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
43
18k
データベース/SQL超入門!完全初心者向けに世界一分かりやすく解説します
ttskch
1
3.1k
Symfony UX Autocompleteとかいう 顧客が本当に必要だったもの
ttskch
0
1.3k
就活生あるいは新人エンジニアさんへのお節介なアドバイス
ttskch
0
1.3k
symfony/pantherでWordleを解いてみた
ttskch
0
190
ついに、Webアプリでの帳票印刷のベストプラクティスを編み出しました💡
ttskch
16
18k
phpenvやめました🤦♂️
ttskch
0
730
PHPでCSVのインポート/エクスポートに立ち向かう
ttskch
1
1.8k
phpenv on Mac 難しすぎワロタ
ttskch
0
480
Other Decks in Programming
See All in Programming
Zero Waste, Radical Magic, and Italian Graft – Quarkus Efficiency Secrets
hollycummins
0
230
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
0
180
データアナリストが行うDatabricksを活用したETLの自動化事例
shinoa
0
260
検証も兼ねて個人開発でHonoとかと向き合った話
hanetsuki
0
270
Milestoner
bkuhlmann
1
410
Front-end application development, Symfony-style(s)
dunglas
2
1.9k
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
670
Behind VS Code Extensions for JavaScript / TypeScript Linnting and Formatting
unvalley
5
860
Azure OpenAI Serviceのプロンプトエンジニアリング入門
tomokusaba
3
620
Blue/Greenデプロイの導入による 運用フローの改善
kudoas
1
360
Ruby Function Composition
bkuhlmann
1
330
try! Swift Tokyo 初参加報告LT
hinakko2
0
210
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
77
42k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
154
14k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Statistics for Hackers
jakevdp
789
220k
Building Flexible Design Systems
yeseniaperezcruz
318
37k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
220
21k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
The Cost Of JavaScript in 2023
addyosmani
15
3.8k
Music & Morning Musume
bryan
41
5.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
30
6k
Visualization
eitanlees
135
14k
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