Как зарегистрировать локальный каталог как пакет для композитора - PullRequest
1 голос
/ 10 июня 2019

Я не могу понять, как зарегистрировать локальный каталог как пакет для композитора. Я нашел много информации о регистрации локальной папки, которая является либо git-репозиторием, либо пакетом composer, либо даже zip-файлом, размещенным где-то.

Однако я хочу зарегистрировать папку на моем локальном компьютере, находящуюся в том же хранилище, что и моя установка WordPress (с использованием WordPlate), которая не является ни git-репозиторием, ни пакетом composer, поскольку она не содержит composer.json.

На данный момент я пытаюсь зарегистрировать его под repositories:

{
            "type": "package",
            "package": {
                "name": "local/contact-form-7-mailchimp-extension",
                "type": "wordpress-plugin",
                "version": "dev-master",
                "source": {
                    "type": "path",
                    "url": "resources/plugins/contact-form-7-mailchimp-extension",
                    "reference": "master"
                }
            }
        }

Добавить "local/contact-form-7-mailchimp-extension": "*" под "require", добавить "local/contact-form-7-mailchimp-extension" в "public/plugins/{$name}" в "extras"> "installer-paths".

Запуск composer install однако не устанавливает его и не дает никакой информации вообще. Даже не знаю, нашел ли он URL или нет ..

Можно ли вообще установить такой локальный каталог?

1 Ответ

0 голосов
/ 10 июня 2019

Вы можете использовать репозиторий путей для установки пакетов с другим путем в ваш проект.

Однако я хочу зарегистрировать папку на моем локальном компьютере, находящуюся в том же хранилище, что и моя установка WordPress (с использованием WordPlate), которая не является ни git-репозиторием, ни пакетом composer, поскольку она не содержит composer.json.

Для того, чтобы это работало, вашему плагину внутри папки понадобится composer.json. Это необходимо для композитора, чтобы сначала распознать эту папку как пакет. К счастью, это может быть так просто:

{
    "name": "local/contact-form-7-mailchimp-extension",
    "description": "My Contact Form-extension using mailchimp",
    "type": "wordpress-plugin",
    "version": "dev-master"
}

Предполагая, что плагин находится в каталоге resources/plugins/contact-form-7-mailchimp-extension, теперь вы можете зарегистрировать этот путь в качестве пути к репозиторию, то есть composer будет искать в этой папке файл composer.json, а когда вашему wordpress-проекту потребуется предоставленный пакет, он будет ( по умолчанию) будет добавлена ​​в список поставщиков.

Затем проекту wordpress composer.json нужны эти записи (параметры для хранилища являются значениями по умолчанию и могут быть опущены, это просто для того, чтобы показать, как отключить символическую ссылку, если вам это нужно):

{
    ...,
    "repositories": [
        {
            "type": "path",
            "url":"resources/plugins/contact-form-7-mailchimp-extension",
            "options": {
                "symlink": true
            }
        }
    ],
    "require": {
        "local/contact-form-7-mailchimp-extension": "dev-master",
        ...
    }
}

Когда composer устанавливает пакет, он должен сообщать вам, откуда он его установил, то есть вы должны найти там путь от хранилища.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...