LoginSignup
11
12

More than 5 years have passed since last update.

Composer

Posted at

@shin1x1

関西PHP勉強会からComposer

前半は新原さん、後半は原田さん

宣伝

Twitter: #phpkansai @kphpug
Facebook: 「Kansai PHP Users Group」

Composer 再入門

Composer は前からある(Symfonyとか…)

Today List

  1. What is Composer
  2. How do use ?
  3. Tips

WHat is COmpoer

  • 依存管理ツール
  • PHP アプリのパッケージ依存を管理
  • Node npm/ Ruby Bundler / Python Pip
  • PHP 5.3.2 > (CentOS/RPM は5.3.3) 最新の一部機能で5.3.4でしか動かない?

ライブラリ依存を解消

Aライブラリ自身が他のBライブラリを使用し、BがCに…と芋づるなので、Composer が面倒を見る

  • composer.json に依存を記述
  • コマンドをインストール
  • 後は実行

使い方

  1. composer install
  2. 依存を composer.json
  3. composer.phar install
composer.json
    "require": {
        "zendframework/zend-db": "2.0.*"
    }

コマンド

$ composer.phar install
...
$ l
- composer.json
- composer.lock
- composer.phar
- vendor/
   +- autoload.php
   +- composer/..
   +- zendframework/...

composer.lock

実際にダウンロードされたバージョンが記述されている。

autoloader

autoload.php を読み込めば、勝手に、パッケージのphpファイルを読み込む。

Tips

Git

GIt で管理した方がいいもの

  • composer.json
  • composer.lock

Git には入れないもの(再取得できるので)

  • composer.phar
  • vendor/*

バージョンの更新

  1. composer.phar update でライブラリのアップデート
  2. composer.lock は更新されるので、git でコミットしてアップデート

依存

composer.phar require <パッケージ名> <バージョン名> で composer.json が作成される

-v -vv -vvv

./composer.phar install -vvv を付けると、通信ログが見れる。

ヨーロッパとか見に行くので割と遅い。(カナダ経由はよ案件)

パッケージ検索/表示

./composer.phar search <keyword>
./composer.phar show <パッケージ>
open http://packagist.org/

スケルトンプロジェクト

./composer.phar createproject symfony/frame.. symfony 2.3.0

とかとか…

これを使えば、全部面倒を見てくれる。

Composer Proxy JP

公式

Packagist

原田さん @slywalker

TwitterBootstrap に対応したプラグイン BoostCake 作った。composer でインストールできるよー。

今自由の身なので、お仕事あればコソコソと…

Packagist

kof-sample-number を登録してみよう。(簡単な素数判定とか)

  • PSR-0 にそった namespace を付けた(vendorname\namespace\namespace\classname)

最近はテストをちゃんと書きましょう。

composer.json
{
    "name": "kof-sample/number",
    "require": {
        "php": ">=5.4"
    },
    "autoload": {
        "psr-0": {
            "Kof": "src/"
        }
    }
}

あると喜ばれる

typeやらauthorやらlicenseやら何やらうんやら…

Packagist

Githubにgit push したら、packagist に自動更新されるようにするには、APITokenを取ってきて、GithubのService hookにあるPackagistを選んでTokenを入力し、Active を選んでおk.

おまけ

OSS用のTravis-CI

継続的インテグレーションのサイト。git push するたびにテストしてくれる。

travis.yml
language: php
php:
    - 5.3
    - 5.4
    - 5.5
script:
    ...path..to.script...

GithubのServiceHookのTravis-CIをアクティブにするだけで、自動的にやってくれる。

もう登録済みなので、packagist で kof で探せば出てくるよーっと。

オススメパッケージ

  • endroid/qrcode: QRCode 生成
  • inlinestyle/inlinestyle: CSS をHTMLのインラインスタイルに適用する。ガラゲー対応するため。あとHTMLメールのOutlook対応とか
  • keboola/csv: CSVファイルの読み込み、書き込み
  • tedivm/fetch: imap/pop3 を操作する。メールの分解もやってくれる
  • chronon/mobile_detect: デバイス判定のライブラリ。かなり細かくやってくれる
  • opauth/opauth: OAuth実装する時に使う。各フレームワークにも対応している

まだ沢山ある。まず検索…英語…うへあ…

選ぶ基準

  1. ダウンロード数
  2. Travice-CI導入している?(Github のREADME にタグが入ってる)
  3. ドキュメントが充実している
  4. 中のコードを読んでみることも大事
11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12