Pergunta

Alguém usa Phing para implantar aplicativos PHP e, em caso afirmativo, como você o usa?Atualmente temos um script de “configuração” escrito à mão que executamos sempre que implantamos uma nova instância do nosso projeto.Acabamos de fazer check-out do SVN e executá-lo.Ele define algumas variáveis ​​de configuração básicas, instala ou recarrega o banco de dados e gera um v-host para a instância do site.

Muitas vezes pensei que talvez devêssemos usar Phing.Eu não usei muito formiga, então não tenho uma noção real do que Phing deve fazer outra coisa além do script, a cópia de arquivos de um lugar para outro, assim como nosso script de configuração faz.Quais são alguns usos mais avançados dos quais você pode dar exemplos para me ajudar a entender por que gostaríamos ou não de integrar Phing em nosso processo?

Foi útil?

Solução

De Federico Cargnelutti postagem no blog:

Os recursos incluem transformações de arquivos (por exemplo,Substituição de token, transformação XSLT, transformações de modelos Smarty), operações do sistema de arquivos, suporte interativo de construção, execução SQL, operações do CVS, ferramentas para criar pacotes de pêra e muito mais.

Claro que você poderia escrever scripts personalizados para todos os itens acima.No entanto, usar uma ferramenta de construção especializada como o Phing oferece vários benefícios.Você usará uma estrutura comprovada, portanto, em vez de se preocupar em configurar a "infraestrutura", poderá se concentrar no código que precisa escrever.Usar o Phing também tornará mais fácil quando novos membros se juntarem à sua equipe, eles serão capazes de entender o que está acontecendo se já tiverem usado o Phing (ou Ant, no qual o Phing é baseado) antes.

Outras dicas

Mudei do Ant para o Phing 'só porque' é PHP.Eu o uso para exportar de diferentes repositórios do Subversion, copiar coisas, construir diferentes pacotes de instalação, etc., tudo isso com um arquivo xml reutilizável de 20 linhas e um arquivo de configuração com coisas específicas do projeto.De jeito nenhum eu conseguiria fazer isso tão rápido com um script personalizado.Também pretendo integrar a geração de documentação de API e testes unitários.Adoro!

A resposta convincente para mim é que o phing entende os caminhos de classe do PHP.Formiga não.Não quero ter um ant build.xml cheio de comandos exec.Acontece que sou principalmente um programador java e ainda uso phing.É a melhor ferramenta para o trabalho.

Usamos phing para implantar SemânticaScuttle:

  • gerar arquivo zip para distribuição
  • criar PERA pacote
  • carregar fecho eclair para SourceForge
  • atualize o Canal PERA com o novo arquivo do pacote
  • renderize a documentação reStructuredText em arquivos HTML e carregue-os.Atualmente com exec mas estou a caminho escrevendo um tarefa separada por isso.

O upload do arquivo zip e do canal é feito via rsync, que infelizmente não é suportado pelo phing através de uma tarefa especial - mas usando exec é sempre possível e funciona bem.

No final, isso economiza muito tempo e podemos testar, empacotar e implantar nosso aplicativo com um único comando (o que nos dá outro ponto na questão). Teste Joel).Eu não gostaria de viver sem isso.

Veja o código build.xml.

Não vejo nenhuma razão convincente para usar o phing.Quero dizer, os programadores de PHP deveriam tentar reescrever o Eclipse "só porque" poderia de alguma forma ser mais fácil escrever plug-ins do Eclipse em PHP?Eu não acho.

Ant tem uma documentação melhor, incluindo alguns bons livros da O'Reilly, e está bem estabelecido no universo Java, então você evita os problemas de (1) "ainda não copiamos o recurso X para o phing" e (2) o risco do projeto phing morrendo. Aqui está um artigo sobre como configurar o PHPUnit para funcionar com ant e cruisecontrol:não é tão difícil.E você obtém integração com o Eclipse gratuitamente.

Boa sorte!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top