Подтвердить что ты не робот

Композитор: обновление проекта, созданного с помощью `create-project`

Предоставляет ли composer способ обновления пакета, с которым был создан проект? то есть, если я создам новый проект Laravel со следующим

composer create-project --prefer-dist laravel/laravel blog

Composer захватит последнюю версию пакета laravel/laravel, разархивирует его в папку блога, а затем запустит composer install из папки blog.

Я хочу/должен знать, предоставляет ли композитор способ обновления пакета laravel/laravel, который был загружен в папку blog? Я знаю, что могу запустить composer update внутри папки blog, но это только обновляет вещи, перечисленные в свойстве compser.json require - оно не будет обновлять разархивированный laravel/laravel в blog (или это будет?)

4b9b3361

Ответ 1

Если вы хотите перейти на новую версию laravel, вы всегда можете следовать руководству по обновлению для вашей конкретной версии:

Если у вас более одной версии, вам необходимо применить предыдущее руководство по обновлению. Поэтому, если вы находитесь на 5.6 и хотите перейти на 5.8, вам нужно следовать руководству для 5.6 до 5.7, а затем от 5.7 до 5.8.

Руководства довольно полезны: они сообщают вам, какой пакет должен быть обновлен до какой версии, и информируют вас об устаревших методах, которые будут удалены в следующих версиях.


Другой метод, который вы можете использовать для обновления до новых минорных версий - просто посмотреть на отличия от одного релиза Laravel до следующего. Таким образом, вы можете видеть, что именно изменилось, и какие файлы являются новыми (например, файлы конфигурации, которые вы можете скопировать и вставить в свой проект, как это сделала бы команда по умолчанию composer create-project).

Что касается текущей версии, вы можете увидеть коммиты с момента последнего выпуска здесь: v5.8.30 до 5.8

Прямо под заголовком релиза есть небольшая ссылка с надписью "36 коммитов до 5.8, начиная с этого релиза", по которой вы перейдете по ссылке выше, только для самой последней версии.

Ответ 2

Мне просто нужно было сделать это, и я не мог найти ничего проще, чем git clone и git pull (как @Federkun). Может быть, альтернативой было бы опубликовать файл phar для проекта и загрузить его? Я вижу db-ping. Он основан на joomla/using phar. Здесь - основной файл для построения, вдохновленный файл joomla.

Ответ 3

Насколько я знаю, это действительно невозможно.

Представьте, что вы создаете новый пример проекта Laravel.

composer create-project создает скелет со всеми начальными маршрутами в вашей конфигурации и т.д.

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

Было бы очень сложно объединить эти изменения с вашим существующим приложением.

Лучшим решением будет следовать "Руководства по обновлению" (laravel: https://laravel.com/docs/5.4/upgrade), а затем просто зафиксируйте эти изменения на своем собственный проект.

Ответ 4

Это не цель композитора, который просто управляет вашими пакетами. Вы должны увидеть composer create-project как ярлык git clone + composer install. Если вам нужно развернуть приложение, у вас есть несколько опций, от простого git pull до более сложных инструментов развертывания, таких как Capistrano. Но композитор не является одним из этих инструментов.