Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Composer 再入門
2013/11/09 shin1x1
KOF 2013
Agenda
• Composer とは
• 基本的な使い方
• Tips

(c) 2013 Masashi Shinbara @shin1x1
Composer

(c) 2013 Masashi Shinbara @shin1x1
Composer
• 依存管理ツール
• プロジェクトが必要な依存を管理
• nodeのnpm / Ruby の Bundler
• PHP 5.3.2 以上(5.3.4以上推奨)
(c) 2013 Masashi Shinbara @shin...
Composer

・ライブラリA

・ライブラリB

PHPシステム

(c) 2013 Masashi Shinbara @shin1x1
Composer
依存
・ライブラリA

・ライブラリB

PHPシステム

(c) 2013 Masashi Shinbara @shin1x1
Composer

・ライブラリA


ライブラリA

・ライブラリB

PHPシステム

(c) 2013 Masashi Shinbara @shin1x1
Composer

・ライブラリA

・ライブラリB

ライブラリB

ライブラリA
PHPシステム

(c) 2013 Masashi Shinbara @shin1x1
Composer
依存
・ライブラリC
・ライブラリA

・ライブラリB

ライブラリB

ライブラリA
PHPシステム

(c) 2013 Masashi Shinbara @shin1x1
Composer

・ライブラリA

・ライブラリB

ライブラリB

ライブラリA
PHPシステム

ライブラリC

(c) 2013 Masashi Shinbara @shin1x1
Composer
・ライブラリA

・ライブラリB

ライブラリC
ライブラリB
ライブラリA
PHPシステム

(c) 2013 Masashi Shinbara @shin1x1
Composer
• 必要なライブラリやフレームワークを明示
• composer.json に依存を記述
• コマンドで自動インストール
• ライブラリの依存も解決

(c) 2013 Masashi Shinbara @shin1x1
基本的な使い方

(c) 2013 Masashi Shinbara @shin1x1
Composer の使い方

1. Composerインストール
2. 依存を composer.json に書く
3. composer.phar install

(c) 2013 Masashi Shinbara @shin1x1
Composerインストール
• インストール(ローカル)
$ curl -sS https://getcomposer.org/
installer | php
$ ls!
composer.phar

•Composer 実行
$ php ...
composer.json を書く
{!
"require": {!
"zendframework/zend-db": "2.0.*"!
}!
}

• zendframework/zend-db が必要
• 2.0.* のバージョン
(c) ...
インストール
$ php composer.phar install!
Loading composer repositories with package information!
Installing dependencies (inclu...
インストール
$ tree -L 2!
.!
!"" composer.json!
!"" composer.lock!
!"" composer.phar!
#"" vendor!
!"" autoload.php!
!"" composer...
PHPコードで利用
<?php!
require_once __DIR__.'/vendor/autoload.php';!
!
use ZendDbAdapterAdapter;!
use ZendDbTableGatewayTableGat...
Tips

(c) 2013 Masashi Shinbara @shin1x1
Git での管理
$ tree -L 2!
.!
!"" composer.json!
!"" composer.lock!
!"" composer.phar!
#"" vendor!
!"" autoload.php!
!"" compos...
バージョンを更新
$ php composer.phar update

• バージョンチェックして新しいものがあれば

インストール

• composer.lock を更新

(c) 2013 Masashi Shinbara @shin1...
依存を追加
$ ./composer.phar require パッケージ名 バージヨン

• composer.json を更新

(composer.json が無ければ生成)

• composer.phar install を実行

(...
ワンライナーでインストール
$ ./composer.phar require パッケージ名 バージヨン

• composer.json を書かなくても良い
• composer.phar install を実行

(c) 2013 Masa...
デバッグログ出力
•-v / -vv / -vvv オプション
$ ./composer.phar install -vvv!
Reading ./composer.json!
Executing command (CWD): git desc...
パッケージを見つける
• パッケージを探す
$ ./composer.phar search キーワード

• パッケージ詳細を見る
$ ./composer.phar show パッケージ

• ブラウザ
https://packagist....
スケルトンプロジェクト作成
• Symfony
$ ./composer.phar create-project symfony/
framework-standard-edition Symfony 2.3.0

• Laravel
$ ./...
Composer が遅い

http://composer-proxy.jp/
(c) 2013 Masashi Shinbara @shin1x1
参考

http://getcomposer.org/
(c) 2013 Masashi Shinbara @shin1x1
まとめ
• デファクトスタンダード
• 依存を明示
• コマンドで自動解決
• どの環境でも同じ構成を再現
• バージョンアップが楽

(c) 2013 Masashi Shinbara @shin1x1
@shin1x1

(c) 2013 Masashi Shinbara @shin1x1
Upcoming SlideShare
Loading in …5
×

Composer 再入門

18,418 views

Published on

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

Published in: Technology

Composer 再入門

  1. 1. Composer 再入門 2013/11/09 shin1x1 KOF 2013
  2. 2. Agenda • Composer とは • 基本的な使い方 • Tips (c) 2013 Masashi Shinbara @shin1x1
  3. 3. Composer (c) 2013 Masashi Shinbara @shin1x1
  4. 4. Composer • 依存管理ツール • プロジェクトが必要な依存を管理 • nodeのnpm / Ruby の Bundler • PHP 5.3.2 以上(5.3.4以上推奨) (c) 2013 Masashi Shinbara @shin1x1
  5. 5. Composer ・ライブラリA
 ・ライブラリB PHPシステム (c) 2013 Masashi Shinbara @shin1x1
  6. 6. Composer 依存 ・ライブラリA
 ・ライブラリB PHPシステム (c) 2013 Masashi Shinbara @shin1x1
  7. 7. Composer ・ライブラリA
 ライブラリA ・ライブラリB PHPシステム (c) 2013 Masashi Shinbara @shin1x1
  8. 8. Composer ・ライブラリA
 ・ライブラリB ライブラリB ライブラリA PHPシステム (c) 2013 Masashi Shinbara @shin1x1
  9. 9. Composer 依存 ・ライブラリC ・ライブラリA
 ・ライブラリB ライブラリB ライブラリA PHPシステム (c) 2013 Masashi Shinbara @shin1x1
  10. 10. Composer ・ライブラリA
 ・ライブラリB ライブラリB ライブラリA PHPシステム ライブラリC (c) 2013 Masashi Shinbara @shin1x1
  11. 11. Composer ・ライブラリA
 ・ライブラリB ライブラリC ライブラリB ライブラリA PHPシステム (c) 2013 Masashi Shinbara @shin1x1
  12. 12. Composer • 必要なライブラリやフレームワークを明示 • composer.json に依存を記述 • コマンドで自動インストール • ライブラリの依存も解決 (c) 2013 Masashi Shinbara @shin1x1
  13. 13. 基本的な使い方 (c) 2013 Masashi Shinbara @shin1x1
  14. 14. Composer の使い方 1. Composerインストール 2. 依存を composer.json に書く 3. composer.phar install (c) 2013 Masashi Shinbara @shin1x1
  15. 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. 16. composer.json を書く {! "require": {! "zendframework/zend-db": "2.0.*"! }! } • zendframework/zend-db が必要 • 2.0.* のバージョン (c) 2013 Masashi Shinbara @shin1x1
  17. 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. 18. インストール $ tree -L 2! .! !"" composer.json! !"" composer.lock! !"" composer.phar! #"" vendor! !"" autoload.php! !"" composer! #"" zendframework インストールされた バージョンを記録 ライブラリは vendor/ にインストールされる (c) 2013 Masashi Shinbara @shin1x1
  19. 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. 20. Tips (c) 2013 Masashi Shinbara @shin1x1
  21. 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. 22. バージョンを更新 $ php composer.phar update • バージョンチェックして新しいものがあれば
 インストール • composer.lock を更新 (c) 2013 Masashi Shinbara @shin1x1
  23. 23. 依存を追加 $ ./composer.phar require パッケージ名 バージヨン • composer.json を更新
 (composer.json が無ければ生成) • composer.phar install を実行 (c) 2013 Masashi Shinbara @shin1x1
  24. 24. ワンライナーでインストール $ ./composer.phar require パッケージ名 バージヨン • composer.json を書かなくても良い • composer.phar install を実行 (c) 2013 Masashi Shinbara @shin1x1
  25. 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. 26. パッケージを見つける • パッケージを探す $ ./composer.phar search キーワード • パッケージ詳細を見る $ ./composer.phar show パッケージ • ブラウザ https://packagist.org/ (c) 2013 Masashi Shinbara @shin1x1
  27. 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. 28. Composer が遅い http://composer-proxy.jp/ (c) 2013 Masashi Shinbara @shin1x1
  29. 29. 参考 http://getcomposer.org/ (c) 2013 Masashi Shinbara @shin1x1
  30. 30. まとめ • デファクトスタンダード • 依存を明示 • コマンドで自動解決 • どの環境でも同じ構成を再現 • バージョンアップが楽 (c) 2013 Masashi Shinbara @shin1x1
  31. 31. @shin1x1 (c) 2013 Masashi Shinbara @shin1x1

×