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 das configurações e necessidades. Este artigo não tenta explicar tudo, mas oferece os requisitos e idéias mais comuns para a implantação.
As etapas comuns realizadas ao implantar uma aplicação Symfony2 incluem:
A implantação também pode incluir outras coisas, tais como:
Existem várias maneiras de implantar uma aplicação Symfony2.
Vamos começar com algumas estratégias de implantação básicas e construir a partir daí.
A forma mais básica de implantar uma aplicação é copiando os arquivos manualmente via FTP/SCP (ou método similar). Isto tem as suas desvantagens, pois você não têm controle sobre o sistema com o progresso de atualização. Este método também requer que você realize algumas etapas manuais após transferir os arquivos (consulte Tarefas Comuns Pós-Implantação)
Se você estiver usando controle de código fonte (por exemplo, git ou svn), você pode simplificar com a sua instalação ao vivo também sendo uma cópia de seu repositório. Quando estiver pronto para atualizá-lo é tão simples quanto buscar as últimas atualizações de seu sistema de controle de código fonte.
Isso torna a atualização de seus arquivos fácil, mas você ainda precisa se preocupar com a realização manual de outros passos (consulte Tarefas Comuns Pós-Implantação).
Há também ferramentas de alta qualidade para ajudar a aliviar o sofrimento da implantação. Existem até mesmo algumas ferramentas que foram especificamente adaptadas às exigências do Symfony2, e que tem um cuidado especial para garantir que tudo, antes, durante e após uma implantação ocorreu corretamente.
Veja As ferramentas para uma lista de ferramentas que podem ajudar com a implantação.
Depois de implantar o seu código fonte, há uma série de tarefas comuns que precisam ser feitas:
Este arquivo deve ser personalizado em cada sistema. O método utilizado para implantar o seu código fonte não deve implantar esse arquivo. Em vez disso, você deve configurá-lo manualmente (ou através de algum processo de construção) em seu(s) servidor(es).
Seus vendors podem ser atualizados antes de transferir o seu código fonte (ou seja, atualizar o diretório vendor/, e, em seguida, transferir com seu código fonte) ou depois no servidor. De qualquer forma, apenas atualize os seus vendors como faria normalmente:
$ php composer.phar install --optimize-autoloader
Tip
A flag --optimize-autoloader deixa o autoloader do Composer com mais performance através da construção de um “mapa de classe”.
Certifique-se de limpar (e o warm-up) o cache do Symfony:
$ php app/console cache:clear --env=prod --no-debug
Se você estiver usando o Assetic, você também vai desejar fazer o dump de seus assets:
$ php app/console assetic:dump --env=prod --no-debug
Podem haver muitas outras coisas que você precisa fazer, dependendo de sua configuração:
Embora este artigo abrange os detalhes técnicos da implantação, o ciclo de vida completo de buscar o código do desenvolvimento até a produção pode ter muito mais passos (pense na implantação para staging, QA, execução de testes, etc.)
O uso de staging, testes, QA, integração contínua, as migrações de banco de dados e a capacidade de reverter em caso de falha são todos fortemente aconselhados. Existem ferramentas simples e outras mais complexas, que podem fazer a implantação tão fácil (ou sofisticada) quanto o seu ambiente requer.
Não se esqueça que a implantação de sua aplicação também envolve a atualização de qualquer dependência (normalmente através do Composer), a migração do seu banco de dados, limpar o cache e outras coisas potenciais como mover os assets para um CDN (consulte Tarefas Comuns Pós-Implantação).
Esta ferramenta fornece um conjunto especializado de ferramentas no topo do Capistrano, especificamente sob medida para projetos symfony e Symfony2.
Esta ferramenta ajuda a criar um pacote Debian nativo para o seu projeto Symfony2.
Esta ferramenta de implantação, semelhante ao Capistrano, é construída em PHP, e pode ser mais fácil, para os desenvolvedores PHP, estendê-la para as suas necessidades.
Bundles:
Há muitos bundles que adicionam recursos de implantação diretamente em seu console do Symfony2.
Script básico:
Você pode, com certeza, usar o shell, Ant, ou qualquer outra ferramenta de construção para criar o script de implantação de seu projeto.
Plataforma como Prestadora de Serviços:
PaaS é uma forma relativamente nova para implantar sua aplicação. Tipicamente uma PaaS vai usar um único arquivo de configuração no diretório raiz do seu projeto para determinar como construir um ambiente em tempo real que suporta o seu software. Um provedor com suporte confirmado para o Symfony2 é o PagodaBox.
Tip
Procurando mais? Fale com a comunidade no Canal IRC do Symfony #symfony (no freenode) para obter mais informações.