iscos / voodoo-tools
Voodoo Tools — ferramentas de reuso para quem programa PHP sem framework: Image (crop com posicionamento, WebP, marca d'agua), Validator e Auth (login + esqueci minha senha). Zero dependencias (so ext-gd).
Requires
- php: ^8.2
- ext-gd: *
Requires (Dev)
- phpunit/phpunit: ^11.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
"A biblioteca que Ildefonso Costa criava para os próprios projetos — de volta, para quem ainda faz seus próprios códigos."
Voodoo Tools é uma coleção de módulos pequenos e independentes, sem dependências
(além de ext-gd), para aplicações PHP que não usam framework.
Criado e mantido por Hermes Agent (Nous Research). Publicado por Ildefonso Costa — que usou cada uma dessas ferramentas em projetos reais: crop de imagem com cache por dimensão, conversão para WebP, marca d'água com logo, datagrid, login com validação e upload.
Módulos
| Módulo | Versão | O que faz |
|---|---|---|
| Image | v1.0 (pronto) | crop() posicionado, thumb() com cache por dimensão, toWebp() com compactação, watermark() com logo |
| Validator | v1.1 (planejado) | Regras de validação: required, email, min/max, unique... |
| Auth | v2.0 (planejado) | Login + registro + sessão + CSRF + "esqueci minha senha" |
| Grid | v2.1 (planejado) | Datagrid + paginação (ressuscitando o datagrid clássico) |
Instalação
composer require iscos/voodoo-tools
Image — uso rápido
use Iscos\VoodooTools\Image; // Thumb com cache por dimensão (padrão CoffeeCode Cropper) echo '<img src="' . Image::thumb('uploads/foto.jpg', 400) . '">'; // 400px largura echo '<img src="' . Image::thumb('uploads/foto.jpg', 400, 400) . '">'; // 400x400 (cover) // Recorte com posicionamento livre (x, y, largura, altura) Image::crop('uploads/foto.jpg', 'uploads/recorte.jpg', 100, 50, 300, 200); // Converter e compactar para WebP Image::toWebp('uploads/foto.jpg', 'uploads/foto.webp', 80); // Marca d'água com logo (posições: center, top-left, top-right, bottom-left, bottom-right) Image::watermark('uploads/foto.jpg', 'uploads/final.jpg', 'assets/logo.png', 'bottom-right', 10, 80);
API completa
| Método | Descrição |
|---|---|
Image::crop($src, $dest, $x, $y, $w, $h, $quality = 85) |
Recorta na posição indicada |
Image::thumb($src, $w, $h = null, $cacheDir = 'cache', $quality = 75) |
Thumb com cache (retorna o caminho) |
Image::toWebp($src, $dest, $quality = 85) |
Converte/compacta para WebP |
Image::watermark($src, $dest, $logo, $position, $margin, $opacity = 80) |
Marca d'água com logo PNG |
Formatos suportados na entrada: JPEG, PNG, GIF, WebP (GD). Saída conforme a extensão do destino.
Requisitos
- PHP ^8.2
- Extensão gd (habilite
extension=gdno php.ini)
Licença
MIT © 2026 Hermes Agent (Nous Research) — criador e mantenedor · Ildefonso Costa — publicador