Развертывание приложения Symfony
Развертывание приложения Symfony может быть сложной и разнообразной задачей в зависимости от настроек и требований приложения.
Типичные шаги для развертывании приложения Symfony, включают:
· Загрузка кода на рабочий сервер;
· Установка зависимостей (обычно это выполняется через Composer и может быть выполнено перед загрузкой);
· Выполнение миграции базы данных или аналогичных задач для обновления любых измененных структур данных;
· Очистка кеша.
Развертывание может также включать другие задачи, такие как:
· Пометка определенной версии кода как релиза в системе контроля версиями;
· Создание временного промежуточного окружения для создания обновленной настройки «offline»;
· Выполнение любых тестов для обеспечения стабильности кода и / или сервера;
· Удаление ненужных файлов из web/ каталога, для очистки production-среды;
· Очистка внешних систем кэширования (например, Memcached или Redis).
Существует несколько способов развертывания приложения Symfony. Начните с нескольких основных стратегий развертывания и создайте оттуда.
Самый простой способ развертывания приложения - копирование файлов вручную через FTP / SCP (или аналогичный метод). У этого есть свои недостатки, поскольку отсутствует система версионирования при дальнейшем обновлении. Этот метод также требует выполнить некоторые шаги вручную после передачи файлов.
При использовании системы контроля версий (например, Git или SVN), необходима её поддержка на стороне сервера, а также выполнение дополнительных действий, после копирования файлов из версионного контроля.
Существуют также инструменты, помогающие облегчить процесс развертывании. Некоторые из них были специально адаптированы к требованиям Symfony.
· Capistrano с плагином Symfony
Capistrano - это средство автоматизации и развертывания удаленного сервера, написанное на Ruby. Плагин Symfony - это плагин для облегчения задач, связанных с Symfony.
· sf2debpkg
Помогает создать пакет Debian для проекта Symfony.
· Magallanes
Это инструмент развертывания, подобный Capistrano, построен на PHP.
· Fabric
Эта библиотека на основе Python предоставляет базовый набор операций для выполнения локальных или удаленных shell-команд и выгрузки / загрузки файлов.
После развертывания исходного кода необходимо сделать несколько общих вещей:
a) Проверить соответствие системным требования с помощью «php bin/symfony_requirements»
b) Настроить app/config/parameters.yml файл
c) Установить / обновить библиотеки с помощью команды «composer install --no-dev --optimize-autoloader»
d) Очистить кэш Symfony командой «php bin/console cache:clear --env=prod --no-debug --no-warmup»
f) Дополнительно, в зависимости от конфигурации, могут потребоваться дополнительные вещи:
· Выполнение миграций баз данных
· Очистка кэша APC
· Запуск assets:install
· Добавление / редактирования заданий CRON
· Публикация frontend-зависимостей в CDN
· Запуск тестов
· Контроль качества
После всех выполненных действий веб-приложение готово к работе и использованию на удалённом сервере.
ГЛАВА 2. СОЗДАНИЕ ПРИЛОЖЕНИЯ НА ОСНОВЕ ТЕХНОЛОГИЙ SYMFONY FRAMEWORK
Постановка задачи
Основным преимуществом Symfony Framework является сочетание комплекса современных подходов в области веб-проектирования: соответствие кода современным стандартам, структурирование, поддержку и масштабируемость, реализацию ООП-подхода при описании структуры и функционала, сокращение времени разработки, возможность повторно использовать модули.
В рамках выпускной квалификационной работы была определена практическая задача - реализация веб-приложения на основе технологий Symfony Framework с учётом современных подходов в области проектирования, разработки, оформления, тестирования программного продукта. Актуальным и популярным сервисом в области веб можно считать типовой интернет-магазин, к которому в современных условиях предъявляются следующие требования:
· масштабируемость и универсальность структуры данных и функционала;
· стандартизация кода;
· сокращение времени на обработку запросов, загрузки страниц;
· устойчивость к высоким нагрузкам;
· эргономичность использования программного продукта, как для разработчика, так и целевой пользовательской аудитории;
· обеспечение безопасности хранимых и передаваемых данных;
· организация обратной связи с пользователем.
На основе анализа технологий Symfony Framework, приведённого в главе 1, в качестве программной реализации возможностей его компонентов и подходов был реализован интернет-магазин, демонстрирующий типовой процесс разработки веб-приложения, отвечающего вышеприведённым требованиям.