いまどきのphp開発現場 -2015年秋-
TRANSCRIPT
![Page 1: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/1.jpg)
@shin1x1
2015/10/03 PHPカンファレンス
いまどきのPHP開発現場 -2015年秋-
![Page 2: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/2.jpg)
開発現場で利用する ツール、サービスの話です
![Page 3: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/3.jpg)
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PHP開発の現場
![Page 4: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/4.jpg)
PHP開発の現場
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PhpStorm
![Page 5: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/5.jpg)
PhpStorm
(c) 2015 Masashi Shinbara @shin1x1
• JetBrains社のIDE(有償) • 動作が軽快、静的解析、オールインワン • Vimmerも納得のIdeaVIM
![Page 6: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/6.jpg)
Demo
(c) 2015 Masashi Shinbara @shin1x1
![Page 7: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/7.jpg)
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PHP開発の現場
![Page 8: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/8.jpg)
PHP開発の現場
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
Vagrant
![Page 9: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/9.jpg)
Vagrant
(c) 2015 Masashi Shinbara @shin1x1
• プロジェクト毎に独立した環境 • 自動構築 • チームで同じ環境を利用 • 運用環境と同じ環境
![Page 10: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/10.jpg)
導入ポイント
(c) 2015 Masashi Shinbara @shin1x1
• PHP コードと一緒に管理 • とことん自動化(vagrant upで完了) • プロビジョニングは VM の中で実行 • Shell Script -> Ansible が楽
![Page 11: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/11.jpg)
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PHP開発の現場
![Page 12: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/12.jpg)
PHP開発の現場
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
フレームワーク
![Page 13: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/13.jpg)
フレームワーク
(c) 2015 Masashi Shinbara @shin1x1
• コンポーネント指向が主流 • Symfony / Zend Framework / Aura CakePHP 3 / Laravel / BEAR.Sunday
• コンポーネントを分離して利用できる • 他のフレームワークのコンポーネントを利用
![Page 14: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/14.jpg)
Laravel
(c) 2015 Masashi Shinbara @shin1x1
• Symfony コンポーネントを多数利用 (独自解釈した Symfony とも言える)
• いいとこ取り • Laravel もコンポーネントとして利用可能
![Page 15: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/15.jpg)
フレームワークの付き合い方
(c) 2015 Masashi Shinbara @shin1x1
• フレームワークに従うのではなく アプリケーションの部品として使う
• フレームワーク on フレームワーク • インハウスフレームワーク
![Page 16: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/16.jpg)
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PHP開発の現場
![Page 17: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/17.jpg)
PHP開発の現場
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア CI (継続的インテグレーション)
![Page 18: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/18.jpg)
CIサーバ、サービス
(c) 2015 Masashi Shinbara @shin1x1
• git push / PR を検知してタスクを自動実行 • テスト実行、フォーマットチェック、静的解析 • 自前なら、Jenkins • SaaSなら、Travis CI / Circle CI
![Page 20: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/20.jpg)
Travis CI
(c) 2015 Masashi Shinbara @shin1x1
https://travis-ci.org/
• GitHub と連携 • git push / PR を検知して実行 • .travis.yml に実行内容を指定 • sudo が実行できる(何でもできる)
![Page 21: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/21.jpg)
.travis.yml
language: phpsudo: falsephp: - 5.6before_script: - composer self-update - cp .env.example .env - mysql -uroot -e "CREATE DATABASE app_test;" - mysql -uroot -e "GRANT ALL PRIVILEGES ON app_test.* TO vagrant@localhost IDENTIFIED BY 'pass';"script: - composer install --prefer-source --no-interaction --dev - php artisan key:generate - ./vendor/bin/phpunit
![Page 22: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/22.jpg)
.travis.yml
language: phpsudo: falsephp: - 5.6before_script: - composer self-update - cp .env.example .env - mysql -uroot -e "CREATE DATABASE app_test;" - mysql -uroot -e "GRANT ALL PRIVILEGES ON app_test.* TO vagrant@localhost IDENTIFIED BY 'pass';"script: - composer install --prefer-source --no-interaction --dev - php artisan key:generate - ./vendor/bin/phpunit
![Page 23: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/23.jpg)
.travis.yml
language: phpsudo: falsephp: - 5.6before_script: - composer self-update - cp .env.example .env - mysql -uroot -e "CREATE DATABASE app_test;" - mysql -uroot -e "GRANT ALL PRIVILEGES ON app_test.* TO vagrant@localhost IDENTIFIED BY 'pass';"script: - composer install --prefer-source --no-interaction --dev - php artisan key:generate - ./vendor/bin/phpunit
![Page 24: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/24.jpg)
.travis.yml
language: phpsudo: falsephp: - 5.6before_script: - composer self-update - cp .env.example .env - mysql -uroot -e "CREATE DATABASE app_test;" - mysql -uroot -e "GRANT ALL PRIVILEGES ON app_test.* TO vagrant@localhost IDENTIFIED BY 'pass';"script: - composer install --prefer-source --no-interaction --dev - php artisan key:generate - ./vendor/bin/phpunit
![Page 25: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/25.jpg)
Scrutinizer
(c) 2015 Masashi Shinbara @shin1x1
https://scrutinizer-ci.com/
![Page 26: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/26.jpg)
Scrutinizer
(c) 2015 Masashi Shinbara @shin1x1
https://scrutinizer-ci.com/
• コードフォーマットや静的解析のSaaS • 指摘表示 • 有償ならテスト実行も可 • Travis CI などと組み合わせる
![Page 27: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/27.jpg)
Scrutinizer
(c) 2015 Masashi Shinbara @shin1x1
指摘事項
GitHub issue に登録
![Page 28: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/28.jpg)
Scrutinizer
(c) 2015 Masashi Shinbara @shin1x1
![Page 29: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/29.jpg)
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PHP開発の現場
![Page 30: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/30.jpg)
PHP開発の現場
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PaaS (Heroku)
![Page 31: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/31.jpg)
PaaS
(c) 2015 Masashi Shinbara @shin1x1
• Platform as a Service • Herokuが、PHP を正式サポート(2014) • Azure WebApps(国内リージョンあり)
![Page 32: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/32.jpg)
PaaS
(c) 2015 Masashi Shinbara @shin1x1
• サーバセットアップは自動 (あらかじめ決まったセットを利用)
• Git でデプロイして、すぐに使える • サーバメンテナンスが不要
![Page 33: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/33.jpg)
Heroku
(c) 2015 Masashi Shinbara @shin1x1
https://www.heroku.com/
![Page 34: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/34.jpg)
Heroku
(c) 2015 Masashi Shinbara @shin1x1
https://www.heroku.com/
• PHP 5.5 / 5.6 / 7(RC4) / HHVM • PHP 拡張や httpd サーバ、設定が可能 • 無料枠あり(検証環境にも便利) • アドオンが豊富
![Page 35: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/35.jpg)
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
PHP開発の現場
![Page 36: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/36.jpg)
PHP開発の現場
(c) 2015 Masashi Shinbara @shin1x1
git push / PR
図図 - エンジニアエンジニア
SaaS (Rollbar)
![Page 37: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/37.jpg)
SaaS
(c) 2015 Masashi Shinbara @shin1x1
• エラートラッカー: Rollbar • DNS: Amazon Route53 • メール: Amazon SES / SendGrid • DB: Amazon RDS / Heroku Postgres • 電話/SMS: Twilio
![Page 38: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/38.jpg)
Rollbar
(c) 2015 Masashi Shinbara @shin1x1
• 発生した例外やエラーを蓄積 • アラート、サマリー • 例外が発生したリクエスト、 スタックトレースを記録
• 無料枠あり
![Page 39: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/39.jpg)
まとめ
![Page 40: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/40.jpg)
ツールやサービスに任せる やるべきことに集中
![Page 41: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/41.jpg)
ツールに導かれる
![Page 42: いまどきのPHP開発現場 -2015年秋-](https://reader033.vdocuments.pub/reader033/viewer/2022042619/5879846e1a28ab6c358b61af/html5/thumbnails/42.jpg)
@shin1x1
(c) 2015 Masashi Shinbara @shin1x1
Q?