Skip to main content More Related Content
PDF
PDF
Security Advisories Checker on Travis/Circle CI PDF
KEY
PPTX
Re: WebServer BenchMarking PDF
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境 PDF
PDF
What's hot
PDF
PDF
GitHubで見つかるFileMaker関連ソフトウェア PDF
composerの遅さをまじめに考える #phpstudy PDF
Vagrant で PHP 開発環境を作る ハンズオン PDF
Webフレームワークを作ってる話 #osakapy PPTX
はじめてのconcrete5 -さくらスタンダード編- PPTX
PDF
PDF
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS PDF
PPTX
PHP x AWS でスケーラブルなシステムをつくろう PPTX
PDF
認証機能で学ぶ Laravel 5 アプリケーション PDF
PDF
仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会 PPTX
Ansibleを使ってdockerコンテナをプロビジョニングする PDF
Vagrant で作る PHP 開発環境 [実践編] PDF
apachehereというPHPのBuiltin Serverっぽいやつをつくった PPTX
PDF
Vagrant - 最近流行ってるらしいけど何者? Viewers also liked
PDF
PDF
PDF
PDF
PDF
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携 PPTX
【ハンズオン】初めてのUnityで作る「3D野球盤」_"8a1"20150204発表資料 PPTX
PSR-1 と PSR-2 を5分でざっくり理解する PDF
PDF
東京から沖縄に移住したからこそわかるクラウドとコミュニティの有り難み 〜人はもっと自由になれる〜 PDF
PDF
NetBeans、FuelPHP と過ごしたこの 2 ヶ月 PDF
SwiftとReactNativeで似たようなUIを作った際の記録 PPTX
はじめて作ったアプリが10,000ダウンロード達成したから自慢する PDF
PDF
PDF
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2 PDF
Docker ComposeでMastodonが必要なものを梱包する話 PDF
Similar to Composer による依存管理 と Packagist によるライブラリの公開
PDF
PDF
PDF
Composerを利用した FuelPHPのパッケージ管理方法 PDF
Software Development with Symfony PDF
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築 PDF
Modern PHP Programming @ PFI Seminar PPTX
Composer bin plugin / ツールの依存管理から解放される PDF
PDF
eZ Publish勉強会9月〜テンプレート言語〜 PDF
PDF
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese) PPTX
PDF
Symfony2でより良いソフトウェアを作るために PDF
PDF
PDF
PHPの今とこれから2025 (PHP Conference Japan 2025) PDF
PDF
PHPの今とこれから2024 at PHP Conference Japan 2024 PDF
PPTX
Composer による依存管理 と Packagist によるライブラリの公開
- 1.
- 2.
- 3.
- 4.
- 5.
依存管理とは
• 常にリリース可能
(Relesable) なソフト
ウェアのための一つの要
素
• 参考: 『継続的デリバリー』13章 コンポーネントや
依存を管理する
- 6.
依存管理とは
Your Project
Framework
Framework
require
Framework
Framework
Framework
Component 2.1.0
Component 2.1.0
require Component 2.1.0
Component 2.1.0
Component 2.1.0
Library Foo-1.0.0 Library Bar-1.*
require
- 7.
- 8.
依存管理の方法
• svn やgit に library 入れる
• git submodule や svn:external を使う
• svn:external は svn up の度に更新が走って煩わしい。 <-I hate!
• 当然 svn 利用時は git で管理するソースコードを何とかするのは難
しい。 (Github ならできるかもだけど)
• 専用のツールを使う
- 9.
- 10.
- 11.
特徴
• PHP5.3.2 以上用
•json でシンプルなパッケージ定義
• autoload 機能
• git, svn, hg, PEAR, PEAR2 上のライブラリを
依存として定義可能
• Public Package Repository もあるよ!
- 12.
- 13.
入手
• まずは入手
• curl -s https://getcomposer.org/installer | php
• インストール要件等のチェック後、composer.phar がダウンロードされます。
• Proxy や curl がない等の場合は、
http://getcomposer.org/download/
からも入手可能
- 14.
- 15.
init コマンド
• Projectの名前や、依存を定義する
composer.json を作成する
• init コマンドは対話形式で Public
Repository である Packagist から依存
パッケージを検索・選択することができ
る。 (でもちょっと重い)
- 16.
- 17.
備考: init 時の指定
• Package name: パッケージ名 (ベンダー名/名前 という形式の必要がある。文字の大小は区別し
ない)
• Description: パッケージの説明
• Author: 作成者
• Minimum Stability: 依存パッケージの最小の安定性, stable を指定すると、dev (開発版) はイ
ンストールされない * ここ数カ月で増えた項目なので注意
- 18.
composer.json
{
"name": "kawahara/sample20120915",
"require": {
"pimple/pimple": "1.0.0"
},
"minimum-stability": "stable",
"authors": [
{
"name": "Shogo Kawahara",
"email": "kawahara@bucyou.net"
}
]
}
- 19.
require について
• 依存を“パッケージ名” : “バージョン” で
指定する
• バージョンは、”1.0.*” のようなワイル
ドカードや、”1.0<=,2.0>” のような範
囲指定もできる。
- 20.
install コマンド
• phpcomposer.phar install
• composer.json を依存解決し、パッケー
ジのダウンロードを行い、vendor/ に配
置する。
• composer.lock というファイルが存在し
ない場合は、ダウンロードしたパッケー
ジのバージョン情報を書き出す。
- 21.
install コマンド
• installコマンド実行時に composer.lock ファイ
ルが存在する場合は、 composer.lock に書きだ
されているバージョンをダウンロードする。
• -> チーム開発時に同じバージョンを共有するため
• -> プロジェクトであれば composer.lock もコミットして共有する
こと!!
- 22.
update コマンド
• phpcomposer.phar update
• composer.json の require を更新し、依
存を入手したい場合は、 update コマン
ドを使う。
• その際、composer.lock も更新される。
- 23.
- 24.
- 25.
Packagist 以外から
{
"name": "kawahara/sample20120915",
“repositories”: [
{
“type”: “pear”,
“url” : “http://pear2.php.net”
}
],
"require": {
"pimple/pimple": "1.0.0",
“pear-pear2/PEAR2_HTTP_Request”: “*”
},
...
- 26.
Packagist 以外から
{
"name": "kawahara/sample20120915",
“repositories”: [
{
“type”: “svn”,
“url”: “http://smarty-php.googlecode.com/svn/”,
“vender-alias: “smarty”
}
],
"require": {
"pimple/pimple": "1.0.0",
“smarty”: “3.1.*”
},
...
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
詳しくはドキュメント
• 更に細かい情報は、全てドキュメントに載って
います。
• http://getcomposer.org/
• 英語? あぁ、仰らないで。私が (ひどいもんです
が) 日本語化していたりします。
• https://github.com/kawahara/composer/
tree/japanese-doc-progress/jpdoc
• この際はっきり言うと、英語苦手なので誰か手
伝って。特にひどいと思った人は。
- 33.