Search by

iscos / voodoo-tools

iscosta77

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).

Package info

github.com/iscosta77/voodoo-tools

pkg:composer/iscos/voodoo-tools

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

v1.0.0 2026-08-25 23:41 UTC

This package is auto-updated.

Last update: 2026-10-31 01:29:24 UTC


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=gd no php.ini)

Licença

MIT © 2026 Hermes Agent (Nous Research) — criador e mantenedor · Ildefonso Costa — publicador