Установка через composer

Kama Breadcrumbs

Вообще устанавливать плагин рекомендуется как плагин, чтобы видеть новые версии и обновлять плагин как это делается с любым плагином WordPress. Но иногда этот плагин бывает нужно установить, например, в тему и при этом иметь возможность обновлять его по требованию через composer. В этом случае вам подойдет один из способов описанных ниже.

В composer как я понял, нельзя создать свой кастомный пакет, а потом указать в какую конкретно папку мы хотим его установить. Такая штука работает из коробки только для определенных пакетных менеджеров. Подробнее о таком способе установки можно прочитать здесь.

Способ 1

Через кастомный репозиторий плагина, который нужно добавить в своем файле composer.json.

Я такое репозиторий еще не создал, как найду время сделаю и добавлю сюда инструкцию.

Способ 2

Вариант с общепринятым инсталлером composer/installers.

{
	"require": {
		"mylocal/kama-breadcrumbs": "dev-master"
	},
	"repositories": [
		{
			"type": "package",
			"package": {
				"name": "mylocal/kama-breadcrumbs",
				"type": "wordpress-plugin",
				"version": "dev-master",
				"dist": {
					"url": "https://api.wp-kama.ru/upserver/download/kama-breadcrumbs/?key=LICENSE_KEY",
					"type": "zip"
				},
				"require": {
					"composer/installers": "*"
				}
			}
		}
	],
	"extra": {
		"installer-paths": {
			"path/to/theme/{$name}": [
				"mylocal/kama-breadcrumbs"
			]
		}
	}
}
  • LICENSE_KEY нужно заменить на ваш ключ (ищите в своем профиле wp-kama).
  • path/to/theme/ нужно заменить на путь куда нужно установить плагин.

ВАЖНО! Новые версии плагина не будут скачиваться автоматически при composer update. Чтобы она скачалась нужно удалить папку плагина. До тех пор пока папка плагина существует composer будет "думать" что все ОК, потому что версию пакета мы указываем сами в параметре "version": "dev-master".

Способ 3

Устанавливаем пакет mnsami/composer-custom-directory-installer, который расширяет базовый инсталлер композера и позволяет указать произвольную папку установки для типа package.

{
	"require": {
		"mnsami/composer-custom-directory-installer": "*",
		"mylocal/kama-breadcrumbs": "*"
	},
	"repositories": [
		{
			"type": "package",
			"package": {
				"name": "mylocal/kama-breadcrumbs",
				"version": "4.21",
				"dist": {
					"url": "https://api.wp-kama.ru/upserver/download/kama-breadcrumbs/?key=YOUR_LICENSE_KEY&ver=4.21",
					"type": "zip"
				}
			}
		}
	],
	"extra": {
		"installer-paths": {
			"path/to/theme/{$name}": [
				"mylocal/kama-breadcrumbs"
			]
		}
	}
}
  • LICENSE_KEY нужно заменить на ваш ключ (ищите в своем профиле wp-kama).
  • path/to/theme/ нужно заменить на путь куда нужно установить плагин.
  • Параметр ver - в URL параметре &ver=4.21 нужно указать нужную версию плагина.

    Параметр ver можно вообще не указывать, тогда будет скачиваться последняя версия, однако в этом случае лучше указать dev-master в чтобы явно было понятно, что устанавливается всегда последняя версия:

    "require": {
    	"mylocal/kama-breadcrumbs": "dev-master"
    }
    ...
    		"version": "dev-master",

ВАЖНО! Последняя версия не будет скачиваться автоматически при composer update, а она скачается только если удалить папку плагина. До тех пор пока папка плагина существует composer будет "думать" что все ОК, потому что версию пакета мы указываем сами в параметре "version": "dev-master".

Способ 4

При каждом composer update или composer install скачиваем последнюю (или указанную версию) плагина и перемещаем скаченные файлы в нужную папку:

{
	"require": {
		"mylocal/kama-breadcrumbs": "dev-master"
	},
	"repositories": [
		{
			"type": "package",
			"package": {
				"name": "mylocal/kama-breadcrumbs",
				"version": "dev-master",
				"dist": {
					"url": "https://api.wp-kama.ru/upserver/download/kama-breadcrumbs/?key=YOUR_LICENSE_KEY",
					"type": "zip"
				}
			}
		}
	],
	"scripts": {
		"post-update-cmd": [
			"rsync -av --delete vendor/mylocal/kama-breadcrumbs path/to/theme/ && rm -rf vendor/mylocal/kama-breadcrumbs"
		]
	}
}

path/to/theme/ вам нужно заменить на путь куда хотите переместить скаченный плагин.

Это не будет работать на windows бeз WSL.