2016-12-16 2 views
1

Что-то я не понимаю об использовании Composer. Чтобы быть ясным, я работаю над Windows 10 и с пакетом wampstack.Слишком много файлов при использовании Composer?

Внутри ..wampstck .. \ PHP я стер любую существующую папку \ поставщика

Для одного проекта я загружал checkdomain/праздник от Packagist. Затем я переместил \ vendor в apache2 \ htdocs и, наконец, передал его, а другой файлов через FTP на внешний веб-сайт, где все работало нормально.

Затем я сделал точно такое же действие для другого пакета phpmailer/phpmailer. Однако в этом случае \ vendor содержал файлы не только для почтовой программы, но и для более раннего checkdomain/holiday, который я не касался в течение нескольких недель.

Кажется, что \ vendor теперь содержит подпапки \ composer, \ phpmailer и \ checkdomain. Последние две подпапки содержат файл composer.json, в котором явно содержат материал, относящийся к этому проекту, и ни к чему другому.

\ поставщик \ композитор, однако содержит файл с именем installed.json, который относится к PHPMailer, checkdomain (и, по правде говоря, в любой другой пакет, который я смотрел на)

У меня есть два вопроса:

  1. Если я вытер папку \ C: .... \ php \ vendor, прежде чем я вызвал новый пакет из Packagist, написав в командной строке> для композитора требуется phpmailer/phpmailer, тогда как система знает что угодно, и что он должен скачать, пакет \ checkdoain.

  2. У меня явно есть информация, выходящая на веб-сайт, проект которого не нужен. I FTP \ vendor на веб-сайт, но он содержит папку \ composer, у которой есть этот файл с именем installed.json, который содержит информацию о предыдущих проектах и ​​не может понадобиться. Зависимость

ответ

3

вашего проекта, класс карты и другие определения хранятся в файле composer.json вашего проекта. Когда вы находитесь в корне вашего проекта и набираете composer require package, файл composer.json обновляется с новыми требованиями. Чтобы ответить на ваш первый вопрос, эта зависимость, вероятно, все еще существует в файле composer.json вашего проекта или существует как зависимость от phpmailer в файле composer.json.

В настоящее время установленные пакеты отслеживаются в composer.lock, так что вы можете скопировать composer.lock и composer.json к новой среде и типа composer install установить одинаковые версии пакета. В идеале вы сделаете это вместо копирования папки поставщика в новую среду (при условии, что у вас больше, чем доступ к FTP).

Я думаю, что вы переусердствовали все это, просто позвольте Composer управлять пакетами и не пытайтесь управлять файлами вручную. Точка Composer предназначена для управления пакетами и их зависимостями для вас. Чтобы ответить на ваш второй вопрос, почему имеет значение, если вы перенесите несколько лишних файлов? Просто кажется, что вы создаете ненужную головную боль для себя.

Вкратце, не удаляйте и не изменяйте файлы в каталоге поставщика. Способ удаления зависимости осуществляется с помощью инструмента командной строки: composer remove package или редактирования composer.json и обновления composer update.

Смежные вопросы