Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace Doctrine\Inflector;
6
 
7
use Doctrine\Inflector\Rules\English;
8
use Doctrine\Inflector\Rules\French;
9
use Doctrine\Inflector\Rules\NorwegianBokmal;
10
use Doctrine\Inflector\Rules\Portuguese;
11
use Doctrine\Inflector\Rules\Spanish;
12
use Doctrine\Inflector\Rules\Turkish;
13
use InvalidArgumentException;
14
 
15
use function sprintf;
16
 
17
final class InflectorFactory
18
{
19
    public static function create(): LanguageInflectorFactory
20
    {
21
        return self::createForLanguage(Language::ENGLISH);
22
    }
23
 
24
    public static function createForLanguage(string $language): LanguageInflectorFactory
25
    {
26
        switch ($language) {
27
            case Language::ENGLISH:
28
                return new English\InflectorFactory();
29
 
30
            case Language::FRENCH:
31
                return new French\InflectorFactory();
32
 
33
            case Language::NORWEGIAN_BOKMAL:
34
                return new NorwegianBokmal\InflectorFactory();
35
 
36
            case Language::PORTUGUESE:
37
                return new Portuguese\InflectorFactory();
38
 
39
            case Language::SPANISH:
40
                return new Spanish\InflectorFactory();
41
 
42
            case Language::TURKISH:
43
                return new Turkish\InflectorFactory();
44
 
45
            default:
46
                throw new InvalidArgumentException(sprintf(
47
                    'Language "%s" is not supported.',
48
                    $language
49
                ));
50
        }
51
    }
52
}