Slide 1

Slide 1 text

PHPでコマンドを作って Homebrewで配布する #symfony_meetup 2017.02.18 @ttskch 1 / 32

Slide 2

Slide 2 text

@ttskch(たつきち) 名古屋から来ました (株)カルテットコミュニケーションズCTO PHP歴5年, Symfony歴3年        ちょっとだけお手伝いしました 2 / 32

Slide 3

Slide 3 text

3 / 32

Slide 4

Slide 4 text

4 / 32

Slide 5

Slide 5 text

5 / 32

Slide 6

Slide 6 text

6 / 32

Slide 7

Slide 7 text

カルテットコミュニケーションズ 絶賛PHPer募集中! リスティング広告運用ツール「Lisket」を提供 時代を先取るホワイト企業です 7 / 32

Slide 8

Slide 8 text

カルテットコミュニケーションズ エンジニアの働きやすさ超大事にしてます 8 / 32

Slide 9

Slide 9 text

カルテットコミュニケーションズ SNSかメールでお気軽にご連絡ください 9 / 32

Slide 10

Slide 10 text

本題 10 / 32

Slide 11

Slide 11 text

今日伝えたいこと PHPerにもできる! コマンド自作&配布 11 / 32

Slide 12

Slide 12 text

1. PHPでコマンドを作る 12 / 32

Slide 13

Slide 13 text

symfony/console 13 / 32

Slide 14

Slide 14 text

symfony/console コマンドを作るとき一番面倒なのがUIの作り込み 引数の扱い、出力の整形、ヘルプ、etc symfony/consoleを使えばその辺全部いい感じに やってくれる コマンドの処理を書くことに集中できる! 14 / 32

Slide 15

Slide 15 text

symfony/console $ composer require symfony/console 15 / 32

Slide 16

Slide 16 text

symfony/console 16 / 32

Slide 17

Slide 17 text

symfony/console 17 / 32

Slide 18

Slide 18 text

2. Homebrewで配布する 18 / 32

Slide 19

Slide 19 text

流れ 1. コマンドのソースをGitHubに上げる 2. Tap用のGitHubリポジトリを作る 3. Formula設定ファイルをTapリポジトリに置く 19 / 32

Slide 20

Slide 20 text

1. コマンドのソースをGitHubに上げる 20 / 32

Slide 21

Slide 21 text

1. コマンドのソースをGitHubに上げる あとで必要なのでタグを付けておく $ git tag 1.0.0 $ git push origin 1.0.0 21 / 32

Slide 22

Slide 22 text

2. Tap用のGitHubリポジトリを作る 22 / 32

Slide 23

Slide 23 text

3. Formula設定ファイルをTap リポジトリに置く 1. でTapリポジトリをローカルにclone 2. で設定ファイルの雛形を作成 3. 設定ファイルを修正してpush brew tap brew create 23 / 32

Slide 24

Slide 24 text

3-1. brew tap が作られる $ brew tap ttskch/greet /usr/local/Homebrew/Library/Taps/ttskch/homebrew- greet 24 / 32

Slide 25

Slide 25 text

3-2. brew create は対象ソースのtarballのURL https://github.com/ttskch/greet/archive/1.0.0.tar.gz $ brew create --tap ttskch/greet 25 / 32

Slide 26

Slide 26 text

3-2. brew create に が自動で作られる /usr/local/Homebrew/Library/Taps/ttskch/homebrew- greet greet.rb 26 / 32

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

3-3. Formula設定ファイルを修正 で変更をcommit & push /usr/local/Homebrew/Library/Taps/ttskch/homebrew- greet 28 / 32

Slide 29

Slide 29 text

完了 29 / 32

Slide 30

Slide 30 text

やってみてください $ brew tap ttskch/greet $ brew install greet 30 / 32

Slide 31

Slide 31 text

まとめ symfony/consoleでコマンドが簡単に作れます Homebrewで配布するのも意外と簡単です やってみると楽しいと思います 31 / 32

Slide 32

Slide 32 text

Thanks :) 32 / 32