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 再入門

9,440
views

Published on

2013/11/09 KOF2013 …

2013/11/09 KOF2013
http://www.1x1.jp/blog/2013/11/composer-beginners-guide-in-kof2013.html

Published in: Technology

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

No Downloads
Views
Total Views
9,440
On Slideshare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
0
Comments
0
Likes
30
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

Transcript

  • 1. Composer 再入門 2013/11/09 shin1x1 KOF 2013
  • 2. Agenda • Composer とは • 基本的な使い方 • Tips (c) 2013 Masashi Shinbara @shin1x1
  • 3. Composer (c) 2013 Masashi Shinbara @shin1x1
  • 4. Composer • 依存管理ツール • プロジェクトが必要な依存を管理 • nodeのnpm / Ruby の Bundler • PHP 5.3.2 以上(5.3.4以上推奨) (c) 2013 Masashi Shinbara @shin1x1
  • 5. Composer ・ライブラリA
 ・ライブラリB PHPシステム (c) 2013 Masashi Shinbara @shin1x1
  • 6. Composer 依存 ・ライブラリA
 ・ライブラリB PHPシステム (c) 2013 Masashi Shinbara @shin1x1
  • 7. Composer ・ライブラリA
 ライブラリA ・ライブラリB PHPシステム (c) 2013 Masashi Shinbara @shin1x1
  • 8. Composer ・ライブラリA
 ・ライブラリB ライブラリB ライブラリA PHPシステム (c) 2013 Masashi Shinbara @shin1x1
  • 9. Composer 依存 ・ライブラリC ・ライブラリA
 ・ライブラリB ライブラリB ライブラリA PHPシステム (c) 2013 Masashi Shinbara @shin1x1
  • 10. Composer ・ライブラリA
 ・ライブラリB ライブラリB ライブラリA PHPシステム ライブラリC (c) 2013 Masashi Shinbara @shin1x1
  • 11. Composer ・ライブラリA
 ・ライブラリB ライブラリC ライブラリB ライブラリA PHPシステム (c) 2013 Masashi Shinbara @shin1x1
  • 12. Composer • 必要なライブラリやフレームワークを明示 • composer.json に依存を記述 • コマンドで自動インストール • ライブラリの依存も解決 (c) 2013 Masashi Shinbara @shin1x1
  • 13. 基本的な使い方 (c) 2013 Masashi Shinbara @shin1x1
  • 14. Composer の使い方 1. Composerインストール 2. 依存を composer.json に書く 3. composer.phar install (c) 2013 Masashi Shinbara @shin1x1
  • 15. Composerインストール • インストール(ローカル) $ curl -sS https://getcomposer.org/ installer | php $ ls! composer.phar •Composer 実行 $ php composer.phar! or! $ ./composer.phar (c) 2013 Masashi Shinbara @shin1x1
  • 16. composer.json を書く {! "require": {! "zendframework/zend-db": "2.0.*"! }! } • zendframework/zend-db が必要 • 2.0.* のバージョン (c) 2013 Masashi Shinbara @shin1x1
  • 17. インストール $ php composer.phar install! Loading composer repositories with package information! Installing dependencies (including require-dev)! - Installing zendframework/zend-db (2.0.8)! Downloading: 100%! ! zendframework/zend-db suggests installing zendframework/ zend-stdlib (2.0.8)! Writing lock file! Generating autoload files (c) 2013 Masashi Shinbara @shin1x1
  • 18. インストール $ tree -L 2! .! !"" composer.json! !"" composer.lock! !"" composer.phar! #"" vendor! !"" autoload.php! !"" composer! #"" zendframework インストールされた バージョンを記録 ライブラリは vendor/ にインストールされる (c) 2013 Masashi Shinbara @shin1x1
  • 19. PHPコードで利用 <?php! require_once __DIR__.'/vendor/autoload.php';! ! use ZendDbAdapterAdapter;! use ZendDbTableGatewayTableGateway;! Composer用 ! オートローダー $adapter = new Adapter([! 'driver' => 'Pdo_Pgsql',! 'database' => 'shin',! 'username' => 'shin',! 'password' => 'pass',! ]);! ! $table = new TableGateway('samples', $adapter);! $rowset = $table->select(['id' => 1]);! var_dump($rowset->current()); (c) 2013 Masashi Shinbara @shin1x1
  • 20. Tips (c) 2013 Masashi Shinbara @shin1x1
  • 21. Git での管理 $ tree -L 2! .! !"" composer.json! !"" composer.lock! !"" composer.phar! #"" vendor! !"" autoload.php! !"" composer! #"" zendframework Git で管理 Git には入れない .gitignoreへ (c) 2013 Masashi Shinbara @shin1x1
  • 22. バージョンを更新 $ php composer.phar update • バージョンチェックして新しいものがあれば
 インストール • composer.lock を更新 (c) 2013 Masashi Shinbara @shin1x1
  • 23. 依存を追加 $ ./composer.phar require パッケージ名 バージヨン • composer.json を更新
 (composer.json が無ければ生成) • composer.phar install を実行 (c) 2013 Masashi Shinbara @shin1x1
  • 24. ワンライナーでインストール $ ./composer.phar require パッケージ名 バージヨン • composer.json を書かなくても良い • composer.phar install を実行 (c) 2013 Masashi Shinbara @shin1x1
  • 25. デバッグログ出力 •-v / -vv / -vvv オプション $ ./composer.phar install -vvv! Reading ./composer.json! Executing command (CWD): git describe --exact-match --tags! Executing command (CWD): git branch --no-color --no-abbrev -v! Executing command (CWD): hg branch! Loading composer repositories with package information! Downloading http://composer-proxy.jp/proxy/packagist/ packages.json! Downloading http://composer-proxy.jp/proxy/packagist/ packages.json! Downloading http://composer-proxy.jp/proxy/packagist/ packages.json (c) 2013 Masashi Shinbara @shin1x1
  • 26. パッケージを見つける • パッケージを探す $ ./composer.phar search キーワード • パッケージ詳細を見る $ ./composer.phar show パッケージ • ブラウザ https://packagist.org/ (c) 2013 Masashi Shinbara @shin1x1
  • 27. スケルトンプロジェクト作成 • Symfony $ ./composer.phar create-project symfony/ framework-standard-edition Symfony 2.3.0 • Laravel $ ./composer.phar create-project laravel/ laravel your-project-name • CakePHP3(dev) $ ./composer.phar create-project cakephp/app cakephp dev-master (c) 2013 Masashi Shinbara @shin1x1
  • 28. Composer が遅い http://composer-proxy.jp/ (c) 2013 Masashi Shinbara @shin1x1
  • 29. 参考 http://getcomposer.org/ (c) 2013 Masashi Shinbara @shin1x1
  • 30. まとめ • デファクトスタンダード • 依存を明示 • コマンドで自動解決 • どの環境でも同じ構成を再現 • バージョンアップが楽 (c) 2013 Masashi Shinbara @shin1x1
  • 31. @shin1x1 (c) 2013 Masashi Shinbara @shin1x1