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
20k
データベース/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.8k
phpenv on Mac 難しすぎワロタ
ttskch
0
490
Other Decks in Programming
See All in Programming
Slackワークフローで感謝を伝える機能/WiFi 自動接続/Figma to React Component/障害レポート君 Team3@NOT A HOTEL
nakaohiroshi
0
100
The grand strategy of Ruby Parser
yui_knk
5
280
TypeScript 関数型スタイルでバックエンド開発のリアル
naoya
49
16k
Deep Dive into React Stream/Serialize
mugi_uno
4
860
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
260
Effectで作る堅牢でスケーラブルなAPIゲートウェイ / Robust and Scalable API Gateway Built on Effect
yasaichi
7
1.2k
Jetpack Composeとデザインシステム
rmakiyama
0
230
TypeScriptコードの漸進的改善 / Progressive Improvement of TypeScript Code
medley
1
440
Try creating your own orderedmap
kazamori
1
280
CREってこういうこと? 体験入社 - 提案資料 - / what-is-cre-trial-employment
shinden
1
620
AmperとFleetを使ったAndroidアプリ
yoppie
0
300
Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50
utgwkk
6
2k
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
244
12k
Designing Experiences People Love
moore
136
23k
Building a Scalable Design System with Sketch
lauravandoore
457
32k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Designing on Purpose - Digital PM Summit 2013
jponch
111
6.5k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Designing for Performance
lara
601
67k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.7k
Building an army of robots
kneath
300
41k
4 Signs Your Business is Dying
shpigford
176
21k
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