Моя профессиональная сеть блокирует доступ в интернет. Несколько месяцев назад я загружаю фреймворк Silex из архива (который содержит файл composer.json) и файл composer.phar, а затем переносю их на свой рабочий стол через жесткий диск.
Мой composer.json, который я настроил:
{
"name": "user/silex",
"require": {
"silex/silex": "1.2", "twig/twig": ">=1.8,<2.0-dev", "doctrine/dbal": "2.2.*", "symfony/security": "~2.3", "symfony/security": "~2.3"},
"autoload": {
"psr-4": {
"Portal\\": "src/"}
}
}
Работает нормально, моя настройка автозагрузки тоже.
сегодня Я хочу добавить monolog/monolog
пакет, поэтому я вручную импортирую его с другого компьютера.
Я помещаю его в папку vendor и добавляю следующую строку в мой файл composer.json:
, "monolog/monolog": ">=1.0.0"
Я бегу на консоли:
php composer.phar dumpautoload
Это выводит:
Генерация файлов автозагрузки
Тогда это останавливается без ошибки, но пространство имен монолога не появляется в моем /vendor/composer/autoload_*.php
файлы.
Что я упустил?
Благодаря edmondscommerceКомментарий Я нашел решение:
Я обновляю свою главную composer.json файл с артефакт репозиторий (и я отключаю упаковщик):
{
"name": "user/silex",
"repositories": [
{
"type": "artifact",
"url": "artifact/"}, {
"packagist": false
}
], "require": {
"silex/silex": "1.2", "twig/twig": ">=1.8,<2.0-dev", "monolog/monolog": "1.*", "doctrine/dbal": "2.2.*", "symfony/security": "~2.3"},
"autoload": {
"psr-4": {
"Portal\\": "src/"}
}
}
Затем я положил папку с именем artifact
в соответствии с URL-адресом в composer.json файл.
Я создаю в эту папку почтовый индекс под названием monolog-monolog-1.8.zip с библиотекой, которую я хочу добавить.
Тогда просто запустите composer update
команда!
Будьте осторожны, корень почтового индекса должен содержать composer.json файл, и это composer.json файл должен содержать версию!
Если вы не хотите создавать собственный репозиторий, вы также можете запустить composer install
(или же composer update
) на копии, которая находится на компьютере, подключенном к сети. Затем вы можете скопировать недавно добавленный и извлеченный компонент в папку поставщика на машине без доступа к Интернету. Обратите внимание, что вам также нужно скопировать vendor/composer/installed.json
сообщить композитору, что новый пакет установлен. После того, как вы скопировали все эти файлы, вы можете запустить composer install
на машине без доступа в интернет, и он не будет пытаться установить что-либо и сбросить файлы автозагрузки.