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

PDF
JJUG CCC リクルートの Java に対する取り組み
PPT
Läänemere ökosüsteem
PDF
Acessibilidade na Web: Principais problemas e Soluções - FISL14
PPTX
12 JYOTIRLINGA , 4 DHAM ALONG WITH 10 DESTINATION IN INDIA
PDF
Prakticna obuka tabela-ispravljena
PPTX
Rahvusvahelised firmad esitlus
PDF
ソフトウェア開発のやり方の改善
PPTX
ia-cloudとNodeREDで作る工場IoT–センサ接続やダッシュボードのカスタムNode開発秘話
JJUG CCC リクルートの Java に対する取り組み
Läänemere ökosüsteem
Acessibilidade na Web: Principais problemas e Soluções - FISL14
12 JYOTIRLINGA , 4 DHAM ALONG WITH 10 DESTINATION IN INDIA
Prakticna obuka tabela-ispravljena
Rahvusvahelised firmad esitlus
ソフトウェア開発のやり方の改善
ia-cloudとNodeREDで作る工場IoT–センサ接続やダッシュボードのカスタムNode開発秘話

What's hot (20)

PPT
Bakterid
PPT
Viirushaigused 2009
PPTX
設計品質とアーキテクチャ
PDF
Win32 APIをてなずけよう
PPTX
Redmine本家コピー+投票サイト作成(Python-Redmine利用事例)
PDF
RailsでのREST API開発の知見共有
PDF
Rest ful api設計入門
PPT
Mõistekaardid
PDF
ディレクターのためのUX基本講座〜カスタマージャーニーマップを体験してみよう〜
PPTX
Baden-Württemberg
PPTX
CleanArchitecture 第4部 「コンポーネントの原則」
PDF
Lean Change Management Hot Seat(もやもや整理シート)- Scrum Fest Sapporo
PPT
Toitained
PPT
Paljunemine
PDF
た行で考える、ポートフォリオの作り方
PPTX
Redmine + Lychee導入のアンチパターン
PPT
Просторове планування. Тетяна Криштоп, смт. Сатанів, 17-18 березня 2016 р.
PDF
ドメイン駆動設計の捉え方 20150718
PPT
Biotehnoloogia
PDF
今必要なCSSアーキテクチャ
Bakterid
Viirushaigused 2009
設計品質とアーキテクチャ
Win32 APIをてなずけよう
Redmine本家コピー+投票サイト作成(Python-Redmine利用事例)
RailsでのREST API開発の知見共有
Rest ful api設計入門
Mõistekaardid
ディレクターのためのUX基本講座〜カスタマージャーニーマップを体験してみよう〜
Baden-Württemberg
CleanArchitecture 第4部 「コンポーネントの原則」
Lean Change Management Hot Seat(もやもや整理シート)- Scrum Fest Sapporo
Toitained
Paljunemine
た行で考える、ポートフォリオの作り方
Redmine + Lychee導入のアンチパターン
Просторове планування. Тетяна Криштоп, смт. Сатанів, 17-18 березня 2016 р.
ドメイン駆動設計の捉え方 20150718
Biotehnoloogia
今必要なCSSアーキテクチャ
Ad

Similar to Composer 再入門 (20)

PDF
Vagrant で作る PHP 開発環境 [実践編]
PDF
Vagrant体験入門
PDF
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
PDF
Vagrant を Web開発環境に使う
PDF
Ansible ではじめるサーバ作業の自動化
KEY
Composer
PDF
Dive into the Cloud with our buddy, lovely PHP!
PDF
PHPのライブラリをcomposer経由で公開した話
PDF
VagrantユーザのためのDocker入門
PDF
Azure Websites で作るスケーラブルな PHP アプリケーション
KEY
Composer による依存管理 と Packagist によるライブラリの公開
PDF
Heroku で作る
スケーラブルな 
PHP アプリケーション
PDF
いまどきのPHP開発現場 -2015年秋-
PDF
なぜリアクティブは重要か #ScalaMatsuri
PDF
Tokyo.R#16 wdkz
PDF
Vagrant で PHP 開発環境を作る ハンズオン
PDF
Composerはじめました
PDF
ocamloptの全体像
PDF
How to run P4 BMv2
PDF
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Vagrant で作る PHP 開発環境 [実践編]
Vagrant体験入門
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
Vagrant を Web開発環境に使う
Ansible ではじめるサーバ作業の自動化
Composer
Dive into the Cloud with our buddy, lovely PHP!
PHPのライブラリをcomposer経由で公開した話
VagrantユーザのためのDocker入門
Azure Websites で作るスケーラブルな PHP アプリケーション
Composer による依存管理 と Packagist によるライブラリの公開
Heroku で作る
スケーラブルな 
PHP アプリケーション
いまどきのPHP開発現場 -2015年秋-
なぜリアクティブは重要か #ScalaMatsuri
Tokyo.R#16 wdkz
Vagrant で PHP 開発環境を作る ハンズオン
Composerはじめました
ocamloptの全体像
How to run P4 BMv2
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Ad

More from Masashi Shinbara (20)

PDF
日本語消えたスライド
PDF
Twilio入門 -Web アプリ編-
PDF
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
PDF
先取り!PHP 7 と WordPress
PDF
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
PDF
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
PDF
How to learn Laravel5 application from Authentication
PDF
認証機能で学ぶ Laravel 5 アプリケーション
PDF
わかってるフレームワーク Laravel
PDF
ビルドサーバで使うDocker
PDF
開発現場で活用するVagrant
PDF
PHPコードではなく PHPコードの「書き方」を知る
PDF
Laravel ユーザなら知っておくべきAuthオートログイン
PDF
キャラ立ちしたエンジニアになる!
PDF
Twilio API を PHP で触ってみよう
PDF
いまどきのPHP
PDF
PHP 5.5 Zend OPcache
PDF
サーバの防災訓練
PDF
Kansai PHP Users Group 2012年活動報告
KEY
10分で分かる最近のCakePHP
日本語消えたスライド
Twilio入門 -Web アプリ編-
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
先取り!PHP 7 と WordPress
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
How to learn Laravel5 application from Authentication
認証機能で学ぶ Laravel 5 アプリケーション
わかってるフレームワーク Laravel
ビルドサーバで使うDocker
開発現場で活用するVagrant
PHPコードではなく PHPコードの「書き方」を知る
Laravel ユーザなら知っておくべきAuthオートログイン
キャラ立ちしたエンジニアになる!
Twilio API を PHP で触ってみよう
いまどきのPHP
PHP 5.5 Zend OPcache
サーバの防災訓練
Kansai PHP Users Group 2012年活動報告
10分で分かる最近のCakePHP

Composer 再入門