ComposerでPackagistに登録されていないプラグインをインストールする方法

みなさんこんにちは!

最近はRailsとSwiftで四苦八苦してるたがみです!
久しぶりにCakePHPを触る機会があり、忘れちゃいけないのでブログに残しとこう!と思った次第です。

今回の例は、
あるプロジェクトでcomposerを使ってプラグイン等を管理しているが、過去のプラグインでPackagistに登録されていない。どうやれば解決出来るんだっけ?
です!

それではいってみましょう!

Composerでzipを扱う

今回インストールしたかったプラグインはACLをGUIで簡単に確認することが出来るプラグイン「Plugin ACL」です。
とても便利なのですが、DLしてプラグインの中身を見る限り、Packagistに登録されていない?

※9/27 12:30 追記
Packagistに登録されていました!僕の確認ミスです!ただ有志の方が非公式で登録されているようです。
alaxos/acl – Packagist

DLするURLはこちらですが、これをComposerでインストール出来るようにしたいと思います!

ComposerではPackagistに登録されているものも扱えますし、zipでまとめられているプラグインのURLを用いてインストールすることも出来ます。
なので今回は先ほどDLしたURLからインストール出来るようにします。

composer.jsonに以下のように書けばインストール出来ます!

composer.json

{
  "repositories": {
    {
      "type": "package",
      "package": {
        "name": "alaxos/plugin_acl",
        "version": "2.3.0",
        "dist": {
          "url": "http://www.alaxos.org/download/alaxos_acl_2.3.0.zip",
          "type": "zip"
        }
      }
    }
  },
  "require": {
    "alaxos/plugin_acl": "2.3.0"
  }
}

ハイライトしてある6行目の名前をrequireの中の16行目で使用することが出来るんですね!
知ってしまえば簡単なんですが、こういうのって探さないと書けないですよね・・・

皆様の役に立てれば!

最近出たCakePHPでのCIの方法を書いた本
一回目を通さないとなー
ちなみに個人的にはCircleCIおすすめです!!

渡辺 一宏 吉羽 龍太郎 岸田 健一郎 穴澤 康裕
インプレス
売り上げランキング: 3,318