Imaster

Trabalhe com o gerenciador de tarefas Phulp para PHP

Há algumas semanas me deparei com um problema e logo pensei em como solucioná-lo; Basicamente, estava utilizando o npm somente para poder instalar e utilizar o gulpjs. Meu projeto tinha (CSS, JS, HTML, etc.), estava utilizando o gulpjs somente para minificar CSS, e JS, e para compilar LESS, logo percebi que poderia salvar um pouco de recurso de maquina, e tempo de deploy fazendo tudo isso somente com o PHP, então criei o PHULP.

PHP
PHP

O PHULP nada mais é do que o gulpjs portado para o PHP. O conceito principal é o mesmo, ou seja, é um task manager ou task runner (como dizem outras pessoas), voltado para tratamento de arquivos, neste caso para minificação, compilação de LESS, SASS e etc. Mas podendo ser utilizado até onde a imaginação alcançar.

Existe a possibilidade de se criar plugins para o PHULP da mesma maneira que o gulpjs e já existem alguns criados aqui.

PHULP
PHULP

Como usar

No repositório do Github existe uma boa documentação de como se usar o PHULP, porém como é uma novidade, vou dar um exemplo simples, porém real, de utilização.

Instalando no seu projeto como composer

Somente precisamos executar o comando:

$ composer require reisraff/phulp

Escrevendo o PhulpFile.php

Criaremos uma task default que irá:

  • iterar um diretório;
  • encontrar somente arquivos que terminam com .php;
  • imprimir o nome do arquivo no terminal;
  • e por fim moveremos o arquivo para um diretório de destino;
task('default', function ($phulp) {
 // Define the source folder
 $phulp->src(['src/'], '/php$/')
 ->pipe($phulp->iterate(function ($distFile) {
 PhulpOutput::out($distFile->getName(), 'blue');
 }))
 ->pipe($phulp->dest('dist/'));
 });

Executando o PHULP

Se você não configurou o bin-dir no composer:

$ vendor/bin/phulp

Pronto!

Além de encontrar e mover arquivos, o PHULP vem com alguns recursos no próprio core:

  • limpar um diretório específico;
  • fazer watch de algum diretório;
  • fazer match de arquivos com expressão regular;
  • criar múltiplas tarefas(tasks);
  • entre outros (entre no repositório e explore o código).

Agradecimentos

Gostaria de agradecer algumas pessoas que me ajudaram a criar o PHULP:

Gabriel Couto – Ideias
Rodrigo Cardoso – Ideias
Rogerio Prado – Ideias
Miguel Oliveira – Contribuição no Github
Thorsten Frommen – Contribuição no Github
Alex Silva – Contribuição no Github

Powered by WPeMatico