Что происходит, когда новые элементы помещаются в файл composer.json в приложении Laravel

#laravel #composer-php

#laravel #композитор-php

Вопрос:

Мне трудно полностью понять, как файл composer.json работает в приложении Laravel. Я могу создавать проекты Laravel, но я самоучка и никогда полностью не понимал, что происходит в файле composer.json.

Например, у меня есть текущий проект, который содержит следующее в composer.json:

 "require": {
    "php": "^7.2",
  

Я попытался выполнить composer require livewire / живой провод, но затем понял, что livewire требуется более новая версия php. Я использую XAMPP 3.2.4, а версия php — 7.2.28. Итак, я создал резервные копии своих файлов из своих htdocs и базы данных и загружаю более новую версию XAMPP.

Я предполагаю, что затем я бы изменил свой файл composer.json на:

 "require": {
    "php": "^7.4",
  

Но я не могу понять, что здесь происходит на самом деле. Это просто говорит о том, что на сервере должна быть версия php 7.4 или выше, чтобы приложение работало? Или это размещение новых файлов в каталоге поставщика? Нужно ли мне удалять какие-либо файлы из каталога поставщика?

Комментарии:

1. Ваша текущая версия php — 7.2.28 , и вы меняете ее на composer.json на «php»: «^ 7.4» , это означает, что вы не можете использовать версию ниже 7.4.

2. Просто для полноты картины: это никоим образом не связано с самим Laravel. Composer ничего не знает о базовом приложении, кроме требований, которые вы указываете в своем composer.json

Ответ №1:

composer — это php-пакеты и менеджер зависимостей. чтобы не копировать мимо всего, что вам нужно для вашего проекта, вы используете composer. когда вы вводите имя пакета в разделе composer.json require, composer извлекает его из своих источников (основным источником composer является packagist).

Что касается каталога поставщиков, если вы удалите его, ваше приложение просто не будет работать, если вы где-то сохраняете приложение (например, в репозитории), вы предоставляете только composer.json, и тогда у вас будет тот же поставщик с записью «Composer install»

Удачи