Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
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 @shin1x1
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.phar!
or!
$ ./composer.phar
(c) 2013 Masashi Shinbara @shin1x1
composer.json を書く
{!
"require": {!
"zendframework/zend-db": "2.0.*"!
}!
}

• zendframework/zend-db が必要
• 2.0.* のバージョン
(c) 2013 Masashi Shinbara @shin1x1
インストール
$ 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
インストール
$ tree -L 2!
.!
!"" composer.json!
!"" composer.lock!
!"" composer.phar!
#"" vendor!
!"" autoload.php!
!"" composer!
#"" zendframework

インストールされた
バージョンを記録

ライブラリは
vendor/
にインストールされる

(c) 2013 Masashi Shinbara @shin1x1
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
Tips

(c) 2013 Masashi Shinbara @shin1x1
Git での管理
$ tree -L 2!
.!
!"" composer.json!
!"" composer.lock!
!"" composer.phar!
#"" vendor!
!"" autoload.php!
!"" composer!
#"" zendframework

Git で管理

Git には入れない
.gitignoreへ

(c) 2013 Masashi Shinbara @shin1x1
バージョンを更新
$ php composer.phar update

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

インストール

• composer.lock を更新

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

• composer.json を更新

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

• composer.phar install を実行

(c) 2013 Masashi Shinbara @shin1x1
ワンライナーでインストール
$ ./composer.phar require パッケージ名 バージヨン

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

(c) 2013 Masashi Shinbara @shin1x1
デバッグログ出力
•-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
パッケージを見つける
• パッケージを探す
$ ./composer.phar search キーワード

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

• ブラウザ
https://packagist.org/

(c) 2013 Masashi Shinbara @shin1x1
スケルトンプロジェクト作成
• 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
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

More Related Content

Composer 再入門