risetechapps / to-upper-for-laravel
Installs: 224
Dependents: 4
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/risetechapps/to-upper-for-laravel
Requires
- php: ^8.3
- illuminate/support: ^12.0
Requires (Dev)
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2025-11-06 03:18:40 UTC
README
Um pacote Laravel que normaliza atributos de modelos para letras maiúsculas antes de persistir os dados. A trait HasToUpper integra-se ao pipeline padrão do Eloquent, respeitando mutators, casts e listas configuráveis de exceção.
🚀 Instalação
composer require risetechapps/to-upper-for-laravel
Opcionalmente publique a configuração para personalizar o comportamento global:
php artisan vendor:publish --provider="RiseTechApps\\ToUpper\\ToUpperServiceProvider" --tag=config
⚙️ Uso básico
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use RiseTechApps\ToUpper\Traits\HasToUpper; class Client extends Model { use HasFactory, HasToUpper; }
Atribuições de strings serão convertidas para maiúsculo (UTF-8 por padrão) antes de chegarem ao array interno de atributos do Eloquent:
$client = new Client(); $client->name = 'joão silva'; $client->city = ' porto alegre '; $client->name; // JOÃO SILVA $client->city; // PORTO ALEGRE (trim aplicado por padrão)
🧩 Configuração avançada
Listas de controle
No model, defina as propriedades abaixo para controlar quais atributos devem (ou não) ser normalizados. As listas são mescladas com os valores definidos em config/to-upper.php.
class Client extends Model { use HasToUpper; protected array $only_upper = ['code']; // apenas estes atributos serão convertidos protected array $no_upper = ['email']; // estes atributos nunca serão convertidos protected array $ignore_upper = ['notes']; // ignora atributos adicionais }
Quando only_upper não estiver vazia, somente os atributos informados serão convertidos. Caso contrário, todos os atributos string serão normalizados, exceto aqueles presentes em no_upper, ignore_upper ou que representem relacionamentos morph (*_type, *_id por padrão).
Codificação e trim
Controle da codificação e do comportamento de trim por model:
class Client extends Model { use HasToUpper; protected string $uppercase_encoding = 'ISO-8859-1'; protected bool $uppercase_trim = false; // mantém espaços ao redor }
Ou ajuste globalmente via arquivo de configuração publicado:
return [ 'encoding' => 'UTF-8', 'trim' => true, 'only_upper' => [], 'no_upper' => [], 'ignore_attributes' => ['id', 'password', 'remember_token'], 'morph_suffixes' => ['_type', '_id'], ];
🧪 Testes
O pacote possui uma suíte com Orchestra Testbench. Para executá-la:
composer install
composer test
🤝 Contribuição
- Faça um fork do repositório
- Crie uma branch (
feature/nova-funcionalidade) - Faça commit das suas alterações
- Envie um Pull Request
📜 Licença
Este projeto é distribuído sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
💡 Desenvolvido por Rise Tech