Documentação do Symfony
Renderizada do repositório symfony-docs-pt-BR no Github
Note
A implantação pode ser uma tarefa complexa e variada, dependendo da configuração e das exigências da sua aplicação. Este artigo não é um guia passo-a-passo, mas uma lista geral dos requisitos mais comuns e idéias para implantação.
As etapas comuns realizadas durante a implantação de uma aplicação Symfony incluem:
A implantação pode também incluir outras tarefas, tais como:
web/ para manter o seu
ambiente de produção limpo;Existem várias formas de implantar uma aplicação Symfony. Comece com algumas estratégias de implantação básicas e construa a partir daí.
A forma mais básica de implantação de uma aplicação é copiar os arquivos manualmente via ftp/scp (ou método similar). Isso tem suas desvantagens pois não há controle sobre o sistema conforme a atualização progride. Esse método também requer que você realize algumas etapas manuais depois de transferir os arquivos (veja Tarefas Comuns Após a Implantação)
Se você estiver usando controle de versão (por exemplo, Git ou SVN), pode simplificar tendo sua instalação ao vivo também sendo uma cópia do seu repositório. Quando estiver pronto para atualizá-lo é tão simples quanto buscar as atualizações mais recentes de seu sistema de controle de versão.
Isso torna a atualização de seus arquivos mais fácil, porém você ainda precisa se preocupar em realizar manualmente outras etapas (veja Tarefas Comuns Após a Implantação).
Há também ferramentas para ajudar na implantação. Algumas delas foram especificamente adaptadas às exigências do Symfony.
O Cookbook do Symfony inclui artigos detalhados para alguns dos provedores mais conhecidos de Plataforma como Serviço (PaaS):
Depois de implantar o código fonte, há uma série de coisas comuns que você precisa fazer:
Verifique se o servidor atende aos requisitos executando:
$ php app/check.php
app/config/parameters.yml¶Esse arquivo não deve ser implantado, mas gerenciado através dos utilitários automáticos fornecidos pelo Symfony.
Os seus vendors podem ser atualizados antes de transferir seu código fonte (ou seja,
atualizar o diretório vendor, e então transferir com seu código
fonte) ou mais tarde no servidor. De qualquer maneira, apenas atualize seus vendors
como faria normalmente:
$ composer install --no-dev --optimize-autoloader
Tip
A flag --optimize-autoloader melhora o desempenho do autoloader do Composer
significativamente através da construção de um “mapa de classe”. A flag --no-dev garante que
o~s pacotes de desenvolvimento não serão instalados no ambiente de produção.
Caution
Se você receber um erro “classe não encontrada” durante essa etapa, você pode precisar
executar export SYMFONY_ENV=prod antes de executar esse comando para que
os scripts``post-install-cmd`` executem no ambiente ``prod`.
Certifique-se de que você limpou (e warm-up) o cache do Symfony:
$ php app/console cache:clear --env=prod --no-debug
Se você estiver usando o Assetic, também vai querer fazer o dump de seus assets:
$ php app/console assetic:dump --env=prod --no-debug
Pode haver várias outras coisas que você precisa fazer, dependendo da sua configuração:
assets:install (já cuidado no composer install)Enquanto esse artigo abrange os detalhes técnicos da implantação, o ciclo de vida completo do código de desenvolvimento até produção pode ter vários outros passos (implantação para staging, QA (Quality Assurance), execução de testes, etc).
O uso de staging, testes, QA, integração contínua, migrações de banco de dados e a capacidade de reverter em caso de falha são fortemente aconselhados. Existem ferramentas simples e mais complexas que podem tornar a implantação tão fácil (ou sofisticada) quanto o seu ambiente requer.
Não se esqueça que implantar sua aplicação também envolve a atualização de qualquer dependência (geralmente via Composer), a migração do seu banco de dados, limpar o cache e outras coisas potenciais, como publicar assets para um CDN (veja Tarefas Comuns Após a Implantação).