silpo-tech/exception-handler-bundle

Exception handler for Symfony

v1.0.0 2025-09-17 06:30 UTC

This package is auto-updated.

Last update: 2025-09-24 13:17:20 UTC


README

CI codecov License: MIT

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