Pular para o conteúdo principal

Phing

Phing

Enviado por Yukare em

O Phing( PHing Is Not GNU make ) é uma ferramenta de build que foi baseada no ant (uma ferramenta de build bastante conhecida para java). São utilizados arquivos xml com as configurações das tarefas.

Pode parecer exagero ir criando tarefas, mas conformo você for utilizando verá que ajuda bastante, principalmente quando você tem que fazer a mesma coisa repetidas vezes, então você irá acabando por criar scripts em php ou bash para estas tarefas. Acredito que criar estes mesmos scripts usando o Phing seja mais pratico.

O próprio Phing possui muitas tarefas que você pode executar facilmente, e também você pode criar as suas próprias, por exemplo, eu uso uma tarefa que facilita o uso do Drush.

Mais adiante vou colocar exemplos de algumas tarefas que eu utilizo aqui no site, alguns exemplos práticos e reais vão ajudar a entender melhor as vantagens dele.

Phing - Opções da linha de comando.

Enviado por Yukare em

Gosto muito de usar o Phing, mas uma coisa que não entendo é porque ele não possui como passar argumentos pela linha de comando, isto é, você pode passar várias opções do próprio Phing, mas se quiser passar uma opção para a sua tarefa não pode.

Alias, não poder é um pouco incorreto, é possível definir variáveis na linha de comando usando -D, por exemplo: phing minhatarefa -Dvariavel=valor mas para isso você precisa conhecer qual variável quer mudar.

Optei então por fazer uma mudança que me permitisse passar argumentos pela linha de comando de maneira mais simples. Um caso de uso real: quero executar uma tarefa do phpunit, e nessa tarefa preciso passar qual modulo vou testar, então agora em vez de eu precisar escrever phing phpunit -Dmodulo=geshifilter e precisar lembrar a cada vez que o nome da variável é modulo, eu posso simplesmente escrever phing phpunit -- geshifilter para executar a mesma tarefa. Pode não ser tão importante assim escrever um pouco a menos, mas é mais fácil de lembrar e usar.

Em vez de modificar algum arquivo do Phing, o que tornaria necessário fazer a mesma modificação a cada instalação ou versão nova do Phing, eu criei uma cópia com modificações de um que já existia. O Phing possui um arquivo que executa duas linhas de comandos e após inclui o arquivo com o seu código. Neste arquivo eu adicionei algumas linhas que mudam os meus argumentos para os argumentos que o Phing usa(com -D).
Fiz este arquivo com o mesmo nome do Phing, e mudei o PATH para que meu arquivo venha antes. Para poder usar isso basta uma pequena modificação no PATH, sem precisar tocar nada no PATH.

Phing - Exibindo a ajuda por padrão.

Enviado por Yukare em

O padrão no Phing, isso é, quando você digita apenas o comando Phing sem nenhum argumento é executar a tarefa que esta definida como padrão. No entanto nem sempre você sabe quais as tarefas que estão disponíveis ou simplesmente não se lembra do nome exato da tarefa que precisa. O Phing possui um comando para isso, que é utiliza-lo com o argumento -l (phing -l), entretanto não acho esta a melhor maneira.

Eu considero melhor fazer como vários outros programas e exibir uma ajuda nesse caso. Seria possível criar uma tarefa com vários comandos echo, mas assim cada vez que você precisar adicionar ou remover uma tarefa, vai precisar modificar a ajuda. O que eu uso é simplesmente mostrar a ajuda padrão do phing quando o usuário utiliza o comando phing sem argumentos, desta maneira não precisamos nos preocupar em atualizar a ajuda.

Crie um arquivo chamado build.xml e insira o seguinte conteúdo: