• Деплоим код напрямую в docker-контейнер. Или как не прокрастинировать после каждого коммита

    • Tutorial
    Пришла задача WEB-12982
    Создаешь ветку web-12982 в репозитории
    Пока ветка собирается, читаешь тз и пьешь кофе
    Приступаешь непосредственно к разработке

    git commit, git push
    Пока ветка пересобирается листаешь хабр
    git commit, git push
    Пока ветка пересобирается листаешь твиттер
    git commit, git push

    Сдаешь на ревью ветку с 50 коммитами

    Понимаешь, что 50 коммитов — это ровно 50 минут чистого времени, которое собрано урывками, потому что отрезки по 1 минуте слишком малы, чтобы заниматься чем-то, кроме прокрастинации и элементарных потребностей.


    Знакома ситуация? В моей компании инфраструктура разработки организована таким образом:


    • В гитлабе есть множество репозиториев по проектам
    • Чтобы обеспечить удобство разработки при создании новой ветки автоматически докерами создается своя песочница по уникальному адресу, полная копия родительской ветки со всем необходимым окружением.
    • Все, что нужно, уже готово — просто пиши код и тестируй-смотри-оценивай результат после каждого коммита, очень удобно!

    Но, медленно... Если тебе близка эта ситуация, добро пожаловать под кат.

    Читать дальше →
  • Как подружить PHPstorm, xDebug и удаленные ветки, собранные через Docker? Слишком просто…

    • Tutorial
    Доброго времени суток, Хабр!

    Еще год назад мой процесс отладки кода в PHP заключался в двух строчках:

    var_dump($variable);
    die();

    Периодически, конечно, приходилось использовать более «сложные» конструкции:

    console.log(data);
    

    echo json_encode($variable, JSON_UNESCAPED_UNICODE);
    exit();

    Нет, что вы! Я знал — в наше время не подобает культурному программисту заниматься этим

    древним ремеслом
    шутка про другое древнейшее ремесло

    Но, честно говоря, я всегда боялся того, что не понимаю. В том числе и принтеров xDebug, в особенности, как все это дело настроить. В один прекрасный день у меня получилось это сделать на своей машине и в локальном проекте — радости не было предела. Спустя много месяцев я столкнулся с новой проблемой, как заниматься отладкой в PHPstorm через xDebug, если проект собирается удаленно докером через CI.

    Если Вы так же, как и я, испытываете трудности с настройкой разных штук, добро пожаловать под кат, я расскажу о своем опыте настройки окружения отладки с такими страшными словами, как Docker, xDebug, CI.
    Читать дальше →
  • Собственные валидации полей для Rules в одном классе

    Валидация входных данных заслуженно является одним из важнейших правил во всей сфере IT. Если сузить сферу деятельности до разработки веб-сайтов, речь пойдет в основном про валидацию данных из форм.

    image

    Я не думаю, что многие разработчики любят проверять входные данные и делают это достаточно тщательно, поэтому в современных фреймворках, таких как Yii 2, предусмотрены функции rules() для моделей и классы-Валидаторы, которые хоть и не избавляют от этой рутины, но, как минимум, делают этот процесс менее нудным.

    В современной документации Yii 2 и других источниках я не нашел живой пример, как сделать так, чтобы все собственные правила валидации хранились в одном месте и их было удобно использовать, если Вы заинтересованы в решении этой проблемы, добро пожаловать под кат.
    Читать дальше →