Pergunta

Depois de ler o artigo "fluxo de trabalho Modern PHP" no novembro edição do php 2008 | revista arquiteto que teste de unidade discutido ( phpunit ), ferramentas de construção ( Phing ) e integração contínua ( Xinc ) , eu sou inspirado a aprender mais sobre algumas das ferramentas disponíveis para PHP, especialmente Phing.

No passado eu sempre tratado de implantação para um servidor de produção, executando o site ao vivo como uma subversão cópia de trabalho e simplesmente executando um "svn update" na caixa de produção para implantar a versão mais recente do código.

Você usa ferramentas de compilação de código PHP? Quais as vantagens que você acredita que eles oferecem sobre a implantação direta de subversão? O que devo olhar para fora, ou o que Gotchas Posso rosto?

Foi útil?

Solução

Eu tenho usado tanto Phing e Ant e prefiro o último muito mais. Inicialmente, eu fui com Phing devido a ele ser escrito em PHP, mas para ser honesto, não é tão maduro quanto Ant. No final, ter um sistema de compilação maduro, com uma grande comunidade vale mais.

coisas feitas com Ant / Phing:

  1. A partir de um loalize base de checkout para um idioma específico, garantir dependências estão lá (outros libs, diretórios, etc)
  2. se os tiver, modelos de compilação, etc
  3. Traga banco de dados alvo até a versão necessária, dependendo do check-out versão do código
  4. executar testes de unidade, etc

Outras dicas

Um grande problema que eu vejo com Phing é que ele cria uma camada desnecessária de engano. PHP é uma linguagem de script e, portanto, poderia ser executado diretamente. uso de configuração XML do Phing é um ajuste pobre para o idioma: ele fornece uma configuração declarativa mais legível, mas à custa de sacrificar a flexibilidade da língua. Com Ant (a inspiração para essa rota), faz sentido desde que Java não tem essa flexibilidade, pois é menos dinâmico e requer compilação.

Infelizmente eu não vi muitas boas alternativas no espaço PHP, e ao contrário de outras línguas construir ferramentas não são tão essencial ou uma parte da cultura de modo a evolução da outra opção bem suportado não pode acontecer a qualquer momento em breve.

Eu, portanto, ficar com opções que estão mais perto do que PHP poderia fazer a partir de culturas que mais agressivamente suportam ferramentas de compilação. Eu normalmente uso Gradle . Rake também faz um ótimo trabalho, dependendo de qual linguagem você quer enganar (e pode haver outras opções semelhantes ). Você também deve pesar coisas como suporte Webdriver se você estiver em que tipo de coisa. Caso contrário, a criação de uma solução leve utilizando PHP e / ou BASH deve cobrir tudo, mantendo a transparência

Eu olhei para a Phing para ele parece bastante impressionante. Para o projeto que estou trabalhando eu estou realmente usando Ant do Apache. Eu usá-lo para fazer uma várias coisas:

  1. Combine e compressa Javascript e CSS (compressão feito usando a YUI Compressor
  2. Substituir arquivos de configuração padrão com arquivos de configuração de produção (config.php.production exemplo de mudança de nome para config.php)
  3. Remova arquivos necessários-un (como o arquivo de construção Ant, build.xml)

Eu acho Phing vale a pena olhar sobre Ant porque é nativa do PHP, o que poderia ser agradável. Além disso, se você está fazendo nada mais do que apenas copiar / mover arquivos em torno de olhar para problemas de desempenho quando você mover para o ambiente de produção. Eu tive um problema onde o funcionou muito bem compressor YUI na minha máquina local, mas sobre os relativamente pequenos VPS foi super lento.

Em um projeto que estou trabalhando agora estamos usando phpUnderControl para executar testes e get o feedback rápido quando algo está quebrado. Pretendemos usá-lo para executar outros testes, bem como alguns escrito em Watir .

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