Lastor
@Lastor
В чем сила, брат? В ньютонах.

Как можно улучшить организацию дев окружения и деплоя при разработке библиотеки?

Здравствуйте. Я привык к следующему способу разработки:
Локальные файлы проекта синхронизированы с дев папкой на удаленном сервере, исключая vendor, посредством PhpStorm. Запуск скриптов производится на сервере. Мне это нравится тем, что я сразу имею представление об их поведении ввиду того же окружения и железа на деве, что и на боевом.

Недавно мне потребовалось часть общего для нескольких проектов кода вынести в библиотеку с отдельным репозиторием.
И с тех пор процесс разработки перестал приносить прежнее удовольствие:
  • Внесение изменений.
  • Комит, пуш.
  • Создание релиза.
  • composer update на локальном
  • composer update на удалённом

Только после этого всего я могу увидеть, что сделал ошибку, и на колу было мочало начинай сначала.
Скопировать библиотеку в проект как-то не комильфо ибо все пути USE потом замучаешься переделывать.
Не исключать vendor из синхронизации тоже ну такое себе.

Как это делаете вы? Может есть какой-то способ упростить жизнь?
  • Вопрос задан
  • 287 просмотров
Решения вопроса 3
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Докер.

Вообще очень странно, что вы так долго могли усидеть на такой неудобной конструкции.
99% разработчиков тестируют код локально, ничего никуда не "синхронизируя" и не "заливая".

Железо при этом не имеет значения, а окружение как раз задается докером.
Правда, говорят что под виндой (и, вроде бы, маком) какие-то до сих пор проблемы с докером, но в целом это совершенный уже мейнстрим.
Если надо просто поколупаться в небольшом кусочке кода, то я запускаю встроенный сервер.
Но для рабочих проектов - уже много лет только докер (но разрабатываю я под линуксом).

Как вариант - можно попробовать Continuous Integration, который весь этот список от пуша до composer update на удалённом будет выполнять автоматом.
Ответ написан
@galliard
Есть у композера такая фишка https://getcomposer.org/doc/05-repositories.md#path

То есть можно прописать в свой основном composer.json репозиторий типа "path" и прописать там путь к папке с твоей библиотекой. Таким образом комит, пуш, создание релиза и composer update на локальном делать не придется, изменения в библиотеке сразу будут и в основном проекте.
Ответ написан
Комментировать
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
Данный вопрос не совсем относится к докерам или обновляениям папок через Шторм... а просто удобства с пакетом, который вы и саппортите

Ошибки:
- нужно писать тесты, чтобы предупредить ошибки :)

Постоянные муки:
- вообще, если библиотека супер-активно пишется и часто, то это немного отдаленно напоминает и нарушает принцип из чистой архитектуры "обращайтесь к стабильным зависимостям"

Потому стоит подумать об архитектуре внешней либы так, чтобы ее изменения не были срочными,

Совет:
сделайте не композер пакетом, а просто как сабрепозиторий, тогда любой из проектов просто как сабгит подтянет... при этом из каждого можно будет ее редактировать и не тянуть как вендор :) все равно она в рамках ваших репозиториев, зачем пакет? :)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы