Quantcast
Channel: polidog lab++
Viewing all articles
Browse latest Browse all 48

composerでpsr0に対応してないパッケージ、backlogなどの非公開リポジトリの対応方法

$
0
0

最近composerとsymfony2が大好きなポリドッグです。

本当にsymfony2素晴らしいです。僕はずっとsymfony2というかsymfonyが使いたくてしょうがなかったわけですが、やっとプロダクトとして使うことが出来そうです。
フレームワークが何かもわからなかったあの頃ですが、それでもsymfonyに憧れていたわけです。
当時はPHP4がまだまだ現役でPHP5からじゃないと使えないsymfonyがなんか最先端な感じがしました。すごくキラキラしてました。
でも僕が結局業務で使うようになったのはcakephpなわけで、結局使う機会がなかったかったと。。。

ってのはどうでもいいですね。composerの話です。

symfony2でも採用されていて、最近のいけてるフレームワークやいけてるライブラリはみんなcomposer対応していますよ。
で、便利なcomposerですが、PSR-0に対応していない糞なライブラリや非公開なリポジトリをcomposer使ってインストールしたい場合にちょっと困ってしまいます。

そこでこんな書き方すれば解決できるよ!って方法を記載しておきます。これ読んどけば他のライブラリとかにも十分応用可能かと思います。

1.まずは糞なライブラリから。
これでautoloadも対応しているのでいちいちライブラリ使うときにrequre書かなくても問題ないっす。超便利。

{
  "autoload": {
    "psr-0": {
      "": "src/"
    },
    "classmap": ["vendor/google/google-api-php-client/src"]
  },
  "repositories": [
    {
      "type": "package",
      "package": {
        "name": "google-api-php-client",
        "version": "0.6.2",
        "dist": {
          "url": "http://google-api-php-client.googlecode.com/files/google-api-php-client-0.6.2.tar.gz",
          "type": "tar"
        }
      }
    }
  ],
  "require": {
    "php": ">=5.3.3",
    "google/google-api-php-client": "0.6.2"
  }
}

2.次に非公開リポジトリの場合。
この場合は今はBacklogのgitリポジトリをcomposerでインストールする方法という想定にします。
※もちろんgitの為の公開鍵は登録済みとします。

{
  "autoload": {
    "psr-0": { 
      "": "src/", 
      "Polidog\\": "vendor/polidog/test/src"
    },
  },
  "repositories": [
    {
      "type": "package",
      "package": {
        "name": "polidog/test",
        "version": "0.1",
        "source" : {
          "url" : "git@polidog.git.backlog.jp:/POLIDOG_TEST/test.git",
          "type": "git",
          "reference": "develop"
        }
      }
    }
  ],
  "require": {
    "php": ">=5.3.3",
    "polidog/test": "0.1",
  },
}

わりと業務で使っている方なんかは便利ではないでしょうか?

おすすめ書籍


Viewing all articles
Browse latest Browse all 48

Trending Articles