Skip to content

Commit a3bbec2

Browse files
committed
v3
1 parent 6d83772 commit a3bbec2

File tree

16 files changed

+137
-10
lines changed

16 files changed

+137
-10
lines changed

composer.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@
3131
"psr/http-server-middleware": "^1.0",
3232
"psr/log": "^1.0 || ^2.0 || ^3.0",
3333
"psr/simple-cache": "^1.0 || ^2.0 || ^3.0",
34-
"sunrise/coder": "^1.0@RC",
35-
"sunrise/hydrator": "^3.15"
34+
"sunrise/coder": "^1.0",
35+
"sunrise/hydrator": "^3.15",
36+
"sunrise/translator": "^1.0"
3637
},
3738
"require-dev": {
3839
"php-di/php-di": "^7.0",
@@ -73,6 +74,5 @@
7374
},
7475
"config": {
7576
"sort-packages": true
76-
},
77-
"minimum-stability": "RC"
77+
}
7878
}

resources/definitions/openapi.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,10 @@
1919
return [
2020
'router.openapi.initial_document' => [
2121
'openapi' => OpenApiConfiguration::VERSION,
22-
'info' => get('router.openapi.initial_document.info'),
23-
],
24-
25-
'router.openapi.initial_document.info' => [
26-
'title' => 'API',
27-
'version' => '1.0.0',
22+
'info' => [
23+
'title' => 'API',
24+
'version' => '1.0.0',
25+
],
2826
],
2927

3028
'router.openapi.initial_operation' => [
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Sunrise\Http\Router\Dictionary\TranslationDomain;
6+
use Sunrise\Translator\Translator\DirectoryTranslator;
7+
8+
use function DI\add;
9+
use function DI\create;
10+
11+
return [
12+
'translator.translators' => add([
13+
create(DirectoryTranslator::class)
14+
->constructor(
15+
domain: TranslationDomain::ROUTER,
16+
directory: __DIR__ . '/../translations',
17+
),
18+
]),
19+
];

resources/translations/.gitkeep

Whitespace-only changes.

resources/translations/ru.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Sunrise\Http\Router\Dictionary\ErrorMessage;
6+
7+
return [
8+
ErrorMessage::MALFORMED_URI => 'URI запроса поврежден и не может быть принят сервером.',
9+
ErrorMessage::RESOURCE_NOT_FOUND => 'Запрашиваемый ресурс не найден для данного URI.',
10+
ErrorMessage::METHOD_NOT_ALLOWED => 'Запрашиваемый метод не разрешен для этого ресурса.',
11+
ErrorMessage::INVALID_VARIABLE => 'Значение переменной {{{ variable_name }}} в URI запроса "{{ route_uri }}" невалидно.',
12+
ErrorMessage::INVALID_QUERY => 'Параметры запроса невалидны.',
13+
ErrorMessage::MISSING_HEADER => 'Отсутствует заголовок запроса "{{ header_name }}".',
14+
ErrorMessage::INVALID_HEADER => 'Заголовок запроса "{{ header_name }}" невалиден.',
15+
ErrorMessage::MISSING_COOKIE => 'Отсутствует cookie "{{ cookie_name }}".',
16+
ErrorMessage::INVALID_COOKIE => 'Cookie "{{ cookie_name }}" невалидно.',
17+
ErrorMessage::INVALID_BODY => 'Тело запроса невалидно.',
18+
];

resources/translations/sr.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Sunrise\Http\Router\Dictionary\ErrorMessage;
6+
7+
return [
8+
ErrorMessage::MALFORMED_URI => 'URI zahteva je oštećen i ne može biti prihvaćen od strane servera.',
9+
ErrorMessage::RESOURCE_NOT_FOUND => 'Traženi resurs nije pronađen za dati URI.',
10+
ErrorMessage::METHOD_NOT_ALLOWED => 'Traženi metod nije dozvoljen za ovaj resurs.',
11+
ErrorMessage::INVALID_VARIABLE => 'Vrednost promenljive {{{ variable_name }}} u URI-ju zahteva "{{ route_uri }}" nije validna.',
12+
ErrorMessage::INVALID_QUERY => 'Parametri zahteva nisu validni.',
13+
ErrorMessage::MISSING_HEADER => 'Nedostaje zaglavlje zahteva "{{ header_name }}".',
14+
ErrorMessage::INVALID_HEADER => 'Zaglavlje zahteva "{{ header_name }}" nije validno.',
15+
ErrorMessage::MISSING_COOKIE => 'Nedostaje cookie "{{ cookie_name }}".',
16+
ErrorMessage::INVALID_COOKIE => 'Cookie "{{ cookie_name }}" nije validan.',
17+
ErrorMessage::INVALID_BODY => 'Telo zahteva nije validno.',
18+
];
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
/**
4+
* It's free open-source software released under the MIT License.
5+
*
6+
* @author Anatoly Nekhay <[email protected]>
7+
* @copyright Copyright (c) 2018, Anatoly Nekhay
8+
* @license https://github.com/sunrise-php/http-router/blob/master/LICENSE
9+
* @link https://github.com/sunrise-php/http-router
10+
*/
11+
12+
declare(strict_types=1);
13+
14+
namespace Sunrise\Http\Router\Dictionary;
15+
16+
/**
17+
* @since 3.0.0
18+
*/
19+
final class TranslationDomain
20+
{
21+
public const HYDRATOR = 'hydrator';
22+
public const ROUTER = 'hydrator';
23+
public const VALIDATOR = 'hydrator';
24+
}

src/Exception/HttpException.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Fig\Http\Message\StatusCodeInterface;
1717
use RuntimeException;
1818
use Stringable;
19+
use Sunrise\Http\Router\Dictionary\TranslationDomain;
1920
use Sunrise\Http\Router\Validation\ConstraintViolationInterface;
2021
use Throwable;
2122

@@ -47,6 +48,8 @@ class HttpException extends RuntimeException implements StatusCodeInterface
4748
*/
4849
private array $constraintViolations = [];
4950

51+
private string $translationDomain = TranslationDomain::ROUTER;
52+
5053
public function __construct(string $message, int $code, ?Throwable $previous = null)
5154
{
5255
parent::__construct($message, $code, $previous);
@@ -86,6 +89,11 @@ final public function getConstraintViolations(): array
8689
return $this->constraintViolations;
8790
}
8891

92+
final public function getTranslationDomain(): string
93+
{
94+
return $this->translationDomain;
95+
}
96+
8997
final public function addMessagePlaceholder(string $placeholder, mixed $replacement): static
9098
{
9199
$this->message = strtr($this->message, [$placeholder => $replacement]);
@@ -113,4 +121,11 @@ final public function addConstraintViolation(ConstraintViolationInterface ...$co
113121

114122
return $this;
115123
}
124+
125+
final public function setTranslationDomain(string $translationDomain): static
126+
{
127+
$this->translationDomain = $translationDomain;
128+
129+
return $this;
130+
}
116131
}

src/Validation/ConstraintViolation.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public function __construct(
2626
private readonly string $propertyPath,
2727
private readonly ?string $code,
2828
private readonly mixed $invalidValue,
29+
private readonly string $translationDomain,
2930
) {
3031
}
3132

@@ -61,4 +62,9 @@ public function getInvalidValue(): mixed
6162
{
6263
return $this->invalidValue;
6364
}
65+
66+
public function getTranslationDomain(): string
67+
{
68+
return $this->translationDomain;
69+
}
6470
}

src/Validation/ConstraintViolation/HydratorConstraintViolationAdapter.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
namespace Sunrise\Http\Router\Validation\ConstraintViolation;
1515

16+
use Sunrise\Http\Router\Dictionary\TranslationDomain;
1617
use Sunrise\Http\Router\Validation\ConstraintViolationInterface;
1718
use Sunrise\Hydrator\Exception\InvalidValueException;
1819

@@ -63,4 +64,9 @@ public function getInvalidValue(): mixed
6364
{
6465
return $this->hydratorConstraintViolation->getInvalidValue();
6566
}
67+
68+
public function getTranslationDomain(): string
69+
{
70+
return TranslationDomain::HYDRATOR;
71+
}
6672
}

0 commit comments

Comments
 (0)