Documentação do Symfony2
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:
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
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:
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).