LoginSignup
24

More than 3 years have passed since last update.

Composer: ローカルのパッケージをrequireする方法

Last updated at Posted at 2018-11-28

ComposerはオンラインのレポジトリであるPackagistにホスティングされたパッケージをrequireするのが通常の使い方だが、ローカルのパッケージをrequireすることもできる。この機能は、自作のライブラリをPackagistに公開する前に、composerでインストールを試して使ってみたりする用途に使える。

Composerでローカルのパッケージを使用する方法

Composerでローカルのパッケージを使用するには、ローカルのパッケージを使いたい側のcomposer.jsonにrepositoriesを足す。repositoriesは配列で、その中にtype"path"のリポジトリ設定を追加する。urlは絶対パスでも相対パスでも構わない。相対パスの場合は、ローカルのパッケージを使いたい側のcomposer.jsonからの相対パスにする。options.symlinkfalseにすると、ローカルパッケージをcomposer installしたときにシンボリックリンクではなく、コピーして持ってくるようになる。

ローカルパッケージを使いたい側のcomposer.json
{
    "name": "suin/main-project",
    "repositories": [
        {
            "type": "path",
            "url": "../LocalPackage",
            "options": {
                "symlink": false
            }
        }
    ],
    "require": {
        "suin/local-package": "dev-master"
    }
}

一方のローカルパッケージのcomposer.jsonは特に細工する必要はない。

ローカルパッケージのcomposer.json
{
    "name": "suin/local-package",
    "autoload": {
        "psr-4": {
            "Suin\\ComposerUsingLocalRepository\\LocalPackage\\": "src/"
        }
    }
}

ローカルパッケージを使いたい側のcomposer.jsonを書いたら、composer installすればローカルパッケージが入ってくる:

$ composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing suin/local-package (dev-master): Mirroring from ../LocalPackage
Writing lock file
Generating autoload files

ちなみに完全なサンプルコードはGitHubに公開しているので、参考にされたし。

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
24