composer

wordpress и Composer: как подключить и использовать

Материал актуален, как минимум для версии Wordpress 5

Подключение composer в развернутый Wordpress

Для подключения автозагрузки композера достаточоно в начало wp-load.php (бустрап-файл, в стандартной конфигурации лежит в корне проекта, именно его подключают все остальные точки входа, которых у WP немало, в т.ч. админка), добавить подключение:

require_once dirname(__FILE__) . '/vendor/autoload.php';
//

Что читать/использовать

Далее о нестандартных конфигурациях, где композер используется "из коробки":

composer Подключение к проекту (автозагрузки) -- как использовать

Например в файле index.php вашего проекта (скорее всего в начале, до загрузки основного функционала), сделайте инклуд вроде:

require_once dirname(__FILE__) . '/vendor/autoload.php';
//

-- путь зависит от того, где именно у вас лежит папка vendor/

правки ядра simpleMVC

Ориентируясь по этой инструкции http://fkn.ktu10.com/?q=node/10655 Изменил файл репозитория в composer.json с it-for-free/simple-mvc на свой Voronve/simple-mvc. Но при попытке обновить зависимости столкнулся с ошибкой - The requested package voronve/simple-mvc could not be found in any version, there may be a typo in the package name.

Проверяем код форка PHP & composer (если проект является пакетом) -- как запустить

Если вы используете композер и сделали форк, ради последующего пулл-реквеста и хотите предварительно проверить изменения (а затем уже сделать сам пулл-реквест), то действуйте так:

composer Установка из bower, nmp. Прокси-репозиторий asset-packagist.org как альтернатива composer-asset-plugin

composer-asset-plugin в данный момент работает очень медленно, Поэтому в качестве альтернативы можно просто подключать в composer.json прокси реопзиторий https://asset-packagist.org/, а именно

"repositories": [
	{
		"type": "composer",
		"url": "asset-packagist.org"
	}
]

надо только указываеть https://asset-packagist.org (вместо asset-packagist.org в примере выше).

composer bin Директория vendor/bin и перенос файлов в неё

Прямо в корень манифеста можно добавить массив, перечисляющий пути к файлам, которые надо перенести в vendor/bin:

"bin": ["src/Documentaion/FileCreator/create-source-code-file.php"],

Composer The package has modified files: (Папка bin)

Сообщение:

The package has modified files

появляется для файла, который публикуется композером в папке vendor/bin

Не очень понятно почему так происходит.

Права на файле после установки композером, оказываются такими (IDE сразу же отмечает, что файл в исходном месте модифицирован):

composer Что означает ошибка The requested package ... exists as ...[...] but these are rejected by your constraint

Ошибка вида:

The requested package it-for-free/yii-extensions dev-msater exists as it-for-free/yii-extensions[dev-master, v0.0.1, v0.0.2, v0.0.3] but these are rejected by your constraint.

Означает, что фактически менеджеру не удаётся найти пакет "it-for-free/yii-extensions" в версии (или ветке) "dev-msater" (как видите тут просто опечатка в названии, т.к. для закачки из мастера нужно писать "dev-master").

Таким образом в указанной форме ошибка фактически просто означает что:

composer Указать версию php (зависимость от ядра интерпретатора)

Просто используйте имя php с указанием версии:

"require": {
	"php": ">=7.2",
}

-- в данном случае будут требоваться все версии как 7.2 и новее.

composer Указать зависимость от модуля ядра PHP (расширения)

Используйте ext- перед названием модуля, например:

"require": {
	"ext-pdo_mysql": "*",
}

-- часто, если вы указываете также явно версию php-интерпретатора, то можно как в примере выше обойтись звездочкой (любая версия) вместо указания конкретной версии.
Подробнее: https://getcomposer.org/doc/01-basic-usa...

Pages

Subscribe to RSS - composer