Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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に公開しているので、参考にされたし。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away