silpo-tech / rest-bundle
Rest bundle for Symfony
Installs: 272
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:symfony-bundle
pkg:composer/silpo-tech/rest-bundle
Requires
- php: >=8.2
 - doctrine/collections: ^1.5
 - mark-gerarts/automapper-plus-bundle: ^1.0
 - php-solution/std-lib: ^1.0
 - phpdocumentor/reflection-docblock: ^5.6
 - silpo-tech/exception-handler-bundle: ^2.0
 - silpo-tech/mapper-bundle: ^1.0
 - silpo-tech/paginator-bundle: ^2.0
 - symfony/property-info: ^7.2
 - symfony/serializer: ^7.2
 - symfony/validator: ^7.2
 - symfony/yaml: ^7.2
 
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
 - phpstan/phpstan: ^2.0
 - phpunit/phpunit: ^11.5
 - symfony/browser-kit: ^7.2
 - symfony/framework-bundle: ^7.2
 
README
Installation
Require the bundle and its dependencies with composer:
$ composer require silpo-tech/rest-bundle
Register the bundle:
// app/AppKernel.php public function registerBundles() { $bundles = array( ... new RestBundle\RestBundle() ); }
How to get current request language and use it?
    private RequestService $requestService;
    public function __construct(RequestService $service)
    {
        $this->requestService = $service;
    }
    /**
     * @param AutoMapperConfigInterface $config
     */
    public function configure(AutoMapperConfigInterface $config): void
    {
        $lang = $this->requestService->getLanguage();
        $config
            ->registerMapping(Office::class, OfficeDto::class)
            ->forMember('title', static function (Office $office) use ($lang) {
                return $office->getTranslationByFieldAndLang('title', $lang) ?: $office->getTitle();
            });
    }
How to configure supported languages
Add to env variables:
DEFAULT_LOCALE=ua
//If you want to restrict available locales (list prioritized, first will be default):
SUPPORTED_LOCALES=["ua", "en", "ru"]
Configuration of service:
    RestBundle\Request\RequestService:
        arguments:
            $defaultLocale: '%kernel.default_locale%'
            $supportedLocales: '%rest.supported_locales%'
Tests
composer test:run