Phulp

https://reisraff.github.io/phulp/dist/#!/home

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.

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, já existem alguns criados , você pode ver aqui.

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;

<?php

// Define the default task
$phulp->task('default', function ($phulp) {
// Define the source folder
$phulp->src(['src/'], '/php$/')
->pipe($phulp->iterate(function ($distFile) {
\Phulp\Output::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 como, por exemplo:
- 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

Você pode ver esse mesmo post no meu site: https://reisraff.github.io/dist/#!/posts/1/5
Você pode ver esse mesmo post no PHPSP: http://phpsp.org.br/phulp/