risetechapps/to-upper-for-laravel
最新稳定版本:1.0.0
Composer 安装命令:
composer require risetechapps/to-upper-for-laravel
包简介
README 文档
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
统计信息
- 总下载量: 288
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 5
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-02-11