silpo-tech / exception-handler-bundle
Exception handler for Symfony
Installs: 28
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=8.2
- mark-gerarts/auto-mapper-plus: ^1.4
- symfony/config: ^6.0|^7.0
- symfony/dependency-injection: ^6.0|^7.0
- symfony/http-kernel: ^6.0|^7.0
- symfony/yaml: ^6.0|^7.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.4|^12.0
- symfony/form: ^6.0|^7.0
- symfony/validator: ^6.0|^7.0
README
Exception Handler Bundle
About
The Exception Handler Bundle helps to catch and process output for different types of exceptions
Installation
Require the bundle and its dependencies with composer:
$ composer require silpo-tech/exception-handler-bundle
Register the bundle:
// app/AppKernel.php public function registerBundles() { $bundles = array( ... new SilpoTech\ExceptionHandlerBundle\ExceptionHandlerBundle(), ); }
How to override standard validation messages?
Create Messages class:
<?php namespace App\Validator; use Symfony\Component\Validator\Constraints\Count; use Symfony\Component\Validator\Constraints\Length; use Symfony\Component\Validator\Constraints\NotBlank; class MessageDictionary { public const ERROR_MAP = [ NotBlank::IS_BLANK_ERROR => 'validation.not_blank', Count::TOO_FEW_ERROR => 'validation.count.min', Count::TOO_MANY_ERROR => 'validation.count.max', Length::TOO_SHORT_ERROR => 'validation.length.min', Length::TOO_LONG_ERROR => 'validation.length.max' ]; }
Add configuration to services.yaml:
parameters: validation_messages_map: !php/const App\Validator\MessageDictionary::ERROR_MAP #or use Symfony Standard SilpoTech\ExceptionHandlerBundle\ValidationHandlerMessages::ERROR_MAP
If you don't need to have properties in snake_case, you can use the following configuration:
parameters: validation_snake_case: false
Run tests locally
Install composer
docker run --rm -v $(pwd):/workspace -w /workspace composer:2 composer install
And then run test
docker run --rm -v $(pwd):/workspace -w /workspace php:8.3-cli php bin/phpunit --color=always