• Save
Composer 再入門
Upcoming SlideShare
Loading in...5
×
 

Composer 再入門

on

  • 8,766 views

2013/11/09 KOF2013

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

Statistics

Views

Total Views
8,766
Views on SlideShare
5,378
Embed Views
3,388

Actions

Likes
26
Downloads
0
Comments
0

12 Embeds 3,388

http://www.1x1.jp 2139
http://scrtree.github.io 824
https://k-of.jp 378
https://twitter.com 18
http://s.deeeki.com 15
http://tech.akat.info 7
http://plus.url.google.com 2
http://localhost 1
http://webcache.googleusercontent.com 1
https://www.google.co.jp 1
http://mym.corp.yahoo.co.jp 1
http://www.google.co.jp 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Composer 再入門 Composer 再入門 Presentation Transcript

  • 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