Сделаю замечание про деплой при помощи Ansistrano.
Эта статья претендует на руководство, но фактически является введением, и подобный способ деплоя применим лишь для pet projects.

Следует рассматривать Ansistrano не как продукт, а как библиотеку для своего способа деплоя. По хорошему вам стоит сделать билд приложения на специальной машине один раз,, и дальше уже использовать Ansistrano для деплоя его на разные среды (сначала тестовые, потом продакшн). Не надо использовать подход Capistrano, где приложение собирается прямо на прод-средах.
Здравствуйте, спасибо за фидбэк!

Статья действительно не самая подробная, но поясняет базовые основы, которые у нас одинаковые для проектов подобного рода. Если вам интересны какие-то частные моменты, можем также об этом рассказать.

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

Мне не совсем понятно как вы предлагаете заранее собрать php-приложение?

Не надо использовать подход Capistrano, где приложение собирается прямо на прод-средах.

Поясните пожалуйста, почему вы так считаете? Мне кажется, это вполне практичный подход
Мне не совсем понятно как вы предлагаете заранее собрать php-приложение?
Установить composer зависимости, прогреть кеш симфони.

Поясните пожалуйста, почему вы так считаете?
Не тратятся ресурсы сервера на повторную сборку, собирается один раз и точно одинаково, деплой продакшена происходит в десятки раз быстрее, не нужны зависимости для сборки на продакшен-машине.
Кажется, я понял — вы предлагаете вместо сервера напрягать сборкой какую-то отдельную билд-машину, идентичную по рабочему окружению с прод-сервером. Интересный подход! Возможно такое действительно применимо, когда нужно деплоить на кучу серверов и загрузка каждого из них критична. Мы в большинстве случаев не сталкиваемся с таким

Основная проблема — dev-зависимости на проде. В случае, если используется assetic, придется ставить java, для webpacknode.js.


Мы эту проблему решили в рамках `Capistrano`
    task :webpack_build do
      run_locally do
        execute "./node_modules/.bin/encore production"
      end
    end

и


  task :upload do
    release_path = fetch(:release_path)
    web_path = fetch(:web_path)

    on roles(:web) do
        execute :mkdir, "-pv", "#{release_path}/#{web_path}/build"
        upload! "#{web_path}/build", "#{release_path}/#{web_path}", :recursive => true
    end
  end
Согласен, таким dev-зависимостям на проде не место. Наш фронтенд, если использует node.js и webpack, то попадает на прод совсем другим способом. Деплой фронта — вообще отдельная тема)
идентичную по рабочему окружению с прод-сервером

Зачем? Это не обязательно с Symfony 3.2+ и использованием переменных окружения (А начиная с 4.0 этот метод и вовсе по умолчанию).
fe3dback/str — Библиотека, в которой реализовано множество функций для манипуляций со строками в ООП стиле и поддержкой многобайтных строк.


забавная фигня, спасибо.
Странные операторы в PHP

Интересная статья, но у меня почему-то ничего так и не завелось :(

Только полноправные пользователи могут оставлять комментарии.
Войдите, пожалуйста.