validator-docs
validator-docs copied to clipboard
[DISCUSSÃO] Sugestão de melhoria
Sugiro a refatoração do aquivo ValidatorProvider para ond ele extenda as validações já existentes no laravel sem substituir a resolução da validação (código citado), fazendo isso tambem seria nescessario refetorar as rules, abaixo segue exemplo.
https://github.com/geekcom/validator-docs/blob/19ebbc9452aeb6fd88c6770ca3bc72b4e094263d/src/validator-docs/ValidatorProvider.php#L27-L34
Exemplo de provider
use App\Rules\Base64ImageRule;
use App\Rules\CheckBilletDueDateRule;
use App\Rules\CheckBilletPaymentRule;
use App\Rules\CheckCreditCardInstallmentsRule;
use App\Rules\CheckInstallmentsRule;
use App\Rules\EnumRule;
use Illuminate\Support\ServiceProvider;
use Validator;
class ValidationServiceProvider extends ServiceProvider
{
protected array $rules = [
'enum' => EnumRule::class,
'base64_image' => Base64ImageRule::class,
'check_installments' => CheckInstallmentsRule::class,
'billet_value_paid' => CheckBilletPaymentRule::class,
'billet_due_date' => CheckBilletDueDateRule::class,
'check_installments_count' => CheckCreditCardInstallmentsRule::class,
];
/**
* @return void
*/
public function boot(): void
{
$this->registerValidationRules();
}
/**
* @return void
*/
private function registerValidationRules(): void
{
foreach ($this->rules as $alias => $class) {
if (is_string($alias)) {
Validator::extend($alias, "$class@passes");
}
}
}
}
Este exemplo tirei de um projeto que fiz
Prós
- Maior compatibilidade com as versoes do Laravel (pelo menos do meu ponto de vista)
- Suporte a customização dos attibutes
- Suporte a customização das mensagens por arquivos de tradução
- Resolução da issue #133
Contras
- Trabalho para refatorar (posso ajudar)
- Possivel perda de retrocompatibilidade (brakingchange)
- Possiveis erros/problemas que eu ainda não encontrei