PHP 8.2.31
Preview: GenericLanguageInflectorFactory.php Size: 1.64 KB
/opt/cpanel/ea-wappspector/vendor/doctrine/inflector/src/GenericLanguageInflectorFactory.php

<?php

declare(strict_types=1);

namespace Doctrine\Inflector;

use Doctrine\Inflector\Rules\Ruleset;

use function array_unshift;

abstract class GenericLanguageInflectorFactory implements LanguageInflectorFactory
{
    /** @var Ruleset[] */
    private $singularRulesets = [];

    /** @var Ruleset[] */
    private $pluralRulesets = [];

    final public function __construct()
    {
        $this->singularRulesets[] = $this->getSingularRuleset();
        $this->pluralRulesets[]   = $this->getPluralRuleset();
    }

    final public function build(): Inflector
    {
        return new Inflector(
            new CachedWordInflector(new RulesetInflector(
                ...$this->singularRulesets
            )),
            new CachedWordInflector(new RulesetInflector(
                ...$this->pluralRulesets
            ))
        );
    }

    final public function withSingularRules(?Ruleset $singularRules, bool $reset = false): LanguageInflectorFactory
    {
        if ($reset) {
            $this->singularRulesets = [];
        }

        if ($singularRules instanceof Ruleset) {
            array_unshift($this->singularRulesets, $singularRules);
        }

        return $this;
    }

    final public function withPluralRules(?Ruleset $pluralRules, bool $reset = false): LanguageInflectorFactory
    {
        if ($reset) {
            $this->pluralRulesets = [];
        }

        if ($pluralRules instanceof Ruleset) {
            array_unshift($this->pluralRulesets, $pluralRules);
        }

        return $this;
    }

    abstract protected function getSingularRuleset(): Ruleset;

    abstract protected function getPluralRuleset(): Ruleset;
}

Directory Contents

Dirs: 1 × Files: 9

Name Size Perms Modified Actions
Rules DIR
- drwxr-xr-x 2025-08-10 19:31:58
Edit Download
511 B lrw-r--r-- 2025-08-10 19:31:58
Edit Download
1.64 KB lrw-r--r-- 2025-08-10 19:31:58
Edit Download
12.55 KB lrw-r--r-- 2025-08-10 19:31:58
Edit Download
1.65 KB lrw-r--r-- 2025-08-10 19:31:58
Edit Download
526 B lrw-r--r-- 2025-08-10 19:31:58
Edit Download
805 B lrw-r--r-- 2025-08-10 19:31:58
Edit Download
201 B lrw-r--r-- 2025-08-10 19:31:58
Edit Download
1.32 KB lrw-r--r-- 2025-08-10 19:31:58
Edit Download
143 B lrw-r--r-- 2025-08-10 19:31:58
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).