Your SlideShare is downloading. ×
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 再入門

10,625

Published on

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

Published in: Technology
0 Comments
36 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,625
On Slideshare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
0
Comments
0
Likes
36
Embeds 0
No embeds

No notes for slide

Transcript of "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

×