Your SlideShare is downloading. ×
 Composer
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Composer

2,940
views

Published on

Published in: Technology

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,940
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
1
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript

    • 1. Dependency Management tool ComposerShogo Kawahara <kawahara@bucyou.net>
    • 2. こんにちは
    • 3. だれやねん
    • 4. だれやねん• @ooharabucyou ¦ かわはら しょうご
    • 5. だれやねん• @ooharabucyou ¦ かわはら しょうご• ちょっと前まで OpenPNE とか作ってた (元手嶋屋ア ルバイト)
    • 6. だれやねん• @ooharabucyou ¦ かわはら しょうご• ちょっと前まで OpenPNE とか作ってた (元手嶋屋ア ルバイト)• 最近は Rakuten という会社で Symfony2 ・Java Spring Framework・Groovy と戯れる日々
    • 7. だれやねん• @ooharabucyou ¦ かわはら しょうご• ちょっと前まで OpenPNE とか作ってた (元手嶋屋ア ルバイト)• 最近は Rakuten という会社で Symfony2 ・Java Spring Framework・Groovy と戯れる日々• 外向きのAPIをうぉうんする人
    • 8. だれやねん• @ooharabucyou ¦ かわはら しょうご• ちょっと前まで OpenPNE とか作ってた (元手嶋屋ア ルバイト)• 最近は Rakuten という会社で Symfony2 ・Java Spring Framework・Groovy と戯れる日々• 外向きのAPIをうぉうんする人• PHP歴は 5年くらい?
    • 9. だれやねん• @ooharabucyou ¦ かわはら しょうご• ちょっと前まで OpenPNE とか作ってた (元手嶋屋ア ルバイト)• 最近は Rakuten という会社で Symfony2 ・Java Spring Framework・Groovy と戯れる日々• 外向きのAPIをうぉうんする人• PHP歴は 5年くらい?• 23歳児
    • 10. だれやねん• @ooharabucyou ¦ かわはら しょうご• ちょっと前まで OpenPNE とか作ってた (元手嶋屋ア ルバイト)• 最近は Rakuten という会社で Symfony2 ・Java Spring Framework・Groovy と戯れる日々• 外向きのAPIをうぉうんする人• PHP歴は 5年くらい?• 23歳児• http://github.com/kawahara
    • 11. いまの Symfonyの Download ページ
    • 12. !!
    • 13. これはなんだ!
    • 14. その名もComposer• ライブラリの依存管理 (Dependency Management) ツール
    • 15. その名もComposer• ライブラリの依存管理 (Dependency Management) ツール
    • 16. 依存管理?Framework-2.1.0 Framework Framework require Framework Framework Framework Component 2.1.0 Component 2.1.0Library Foo-1.0.0 Component 2.1.0 Component 2.1.0 Component 2.1.0 require require Library Bar-1.0.0 こういった管理をやる必要がある (常に Releasable なものを用意する。) Continuous Delivery p.367 参照
    • 17. 何が捗る?
    • 18. 何が捗る?• テスト
    • 19. 何が捗る?• テスト• 環境構築
    • 20. 何が捗る?• テスト• 環境構築• ライブラリのバージョンアップへの対 応
    • 21. 何が捗る?• テスト• 環境構築• ライブラリのバージョンアップへの対 応• デプロイ自働化
    • 22. Composer• Public な composer repository も完 備• 自由に誰でもライブラリを登録できま す。
    • 23. Packagist (これ自体も Open Source) Symfony2 利用
    • 24. Composer• Public な Compoesr repository もあ り、 1,829 package 登録 (PEAR: 588, PEAR2: 19)
    • 25. Composer• はっきり言うと、PHPバージョンの以 下のようなもの。
    • 26. Composer 誕生以前
    • 27. 依存管理は どうだったか(PHP的に考えて)
    • 28. ライブラリを自分のプロジェクトに コピペ なおかつコミット
    • 29. なにそれこわい
    • 30. • Dependency Management Version Control• 「Aライブラリ ver2.1.0 は Bライブラ リ ver 2.1.0 を必要としている」とい う状況を常に創りださなければならな い。
    • 31. svn:externals
    • 32. git submodule
    • 33. そうだね git から svn の プロジェクトsubmodule にできないね (逆も然り)
    • 34. しかも• svn:external って、 svn upするたび に、依存引っ張ってきてうぜぇ。
    • 35. PEAR
    • 36. PEAR2
    • 37. package.xmlよむのたるい
    • 38. package.xmlつくるのたるい
    • 39. Symfony2.0時代• ./bin/vendor という php script• deps に定義された git repository & version を取得
    • 40. Composer
    • 41. Composer• PHP 5.3.2 <= 用
    • 42. Composer• PHP 5.3.2 <= 用• json でシンプルパッケージ定義
    • 43. Composer• PHP 5.3.2 <= 用• json でシンプルパッケージ定義• autoload 機能
    • 44. Composer• PHP 5.3.2 <= 用• json でシンプルパッケージ定義• autoload 機能• svn, git, hg, PEAR, PEAR2 のパッケージも 管理可能
    • 45. Composer• PHP 5.3.2 <= 用• json でシンプルパッケージ定義• autoload 機能• svn, git, hg, PEAR, PEAR2 のパッケージも 管理可能• gitはインストールほぼ必須
    • 46. デモ• インストール• アプリを作るとき• 依存パッケージ入手• PEAR, PEAR2 は?
    • 47. インストール • curl -s http://getcomposer.org/ installer | php• or• php -r "eval(? >.file_get_contents(http:// getcomposer.org/installer));"
    • 48. インストール• グローバルにインストールするとき• sudo mv composer.phar /usr/local/ bin/composer
    • 49. アプリを作るとき• composer init• -> 対話式パッケージ作成コマンド
    • 50. 依存パッケージ入手• composer install (composer.lock か ら or 初回)• composer update (composer.json から or 更新時)
    • 51. パッケージ追加• composer require• package.json を更新して、パッケージ を入手 (composer update)
    • 52. autoload• Composer で入手されたライブラリを使うと き• require vendor/autoload.php;• 基本的にこれだけ!
    • 53. Symfony Standard の場合• 既に、composer の autoload.php が ロードされているので、ライブラリを 落とした時点で使える。
    • 54. そして Symfony2.1• php composer.phar create-project symfony/framework-standard-edition path/ v2.1.0-beta1• 新しい Symfony2 Framework’s Project を作成
    • 55. そして Symfony2.1•composer require•で Bundle 取得できる!!
    • 56. 実用 Composer• Travis CI with Composer • http://travis-ci.org/#!/doctrine/ DoctrineBundle/jobs/1654133
    • 57. 欠点• たまに (composer自体が) ぶっ壊れる • composer self-update で最新版が手に入 るが、最新版が動かないことが、、、 (2012/06現在) • Symfony2.1 リリース後は stable なもの を配ってくれるといいのだが…。
    • 58. 欠点• まだまだ激しい変更? • autoload directory の変更 (5月)• packagist ちょっと遅くね?
    • 59. 実際にプロダクトでつかった思い出 (怪談・失敗例)
    • 60. 実際にプロダクトで つかった思い出 (怪談・失敗例)• composer update したいのにできないでござる (composer 自体が 壊れている)
    • 61. 実際にプロダクトで つかった思い出 (怪談・失敗例)• composer update したいのにできないでござる (composer 自体が 壊れている) • Test Fail -> CI Tool に怒られる
    • 62. 実際にプロダクトで つかった思い出 (怪談・失敗例)• composer update したいのにできないでござる (composer 自体が 壊れている) • Test Fail -> CI Tool に怒られる• Packagist 死んだ
    • 63. 実際にプロダクトで つかった思い出 (怪談・失敗例)• composer update したいのにできないでござる (composer 自体が 壊れている) • Test Fail -> CI Tool に怒られる• Packagist 死んだ • Test Fail -> CI Tool に怒られる
    • 64. 実際にプロダクトで つかった思い出 (怪談・失敗例)• composer update したいのにできないでござる (composer 自体が 壊れている) • Test Fail -> CI Tool に怒られる• Packagist 死んだ • Test Fail -> CI Tool に怒られる• github.com 死んだ
    • 65. 実際にプロダクトで つかった思い出 (怪談・失敗例)• composer update したいのにできないでござる (composer 自体が 壊れている) • Test Fail -> CI Tool に怒られる• Packagist 死んだ • Test Fail -> CI Tool に怒られる• github.com 死んだ • Test Fail -> CI Tool に怒られる
    • 66. 実際にプロダクトで つかった思い出 (怪談・失敗例)• composer update したいのにできないでござる (composer 自体が 壊れている) • Test Fail -> CI Tool に怒られる• Packagist 死んだ • Test Fail -> CI Tool に怒られる• github.com 死んだ • Test Fail -> CI Tool に怒られる• autoload の場所変わった
    • 67. お役立ち資料• Documents• http://getcomposer.org/• Easy Package Management with Composer• http://net.tutsplus.com/tutorials/php/easy-package- management-with-composer/
    • 68. 推薦書籍最近日本語が出た!
    • 69. 私の演奏はまだまだこれからだ ご清聴 ありがとうございました。

    ×