LazyRecord\Inflector::singularize PHP Метод

singularize() публичный Метод

Return $word in singular form.
public singularize ( string $word ) : string
$word string Word in plural
Результат string Word in singular
    public function singularize($word)
    {
        $_this =& self::getInstance();
        if (isset($_this->_singularized[$word])) {
            return $_this->_singularized[$word];
        }
        if (!isset($_this->_singular['merged']['uninflected'])) {
            $_this->_singular['merged']['uninflected'] = array_merge($_this->_singular['uninflected'], $_this->_uninflected);
        }
        if (!isset($_this->_singular['merged']['irregular'])) {
            $_this->_singular['merged']['irregular'] = array_merge($_this->_singular['irregular'], array_flip($_this->_plural['irregular']));
        }
        if (!isset($_this->_singular['cacheUninflected']) || !isset($_this->_singular['cacheIrregular'])) {
            $_this->_singular['cacheUninflected'] = '(?:' . implode('|', $_this->_singular['merged']['uninflected']) . ')';
            $_this->_singular['cacheIrregular'] = '(?:' . implode('|', array_keys($_this->_singular['merged']['irregular'])) . ')';
        }
        if (preg_match('/(.*)\\b(' . $_this->_singular['cacheIrregular'] . ')$/i', $word, $regs)) {
            $_this->_singularized[$word] = $regs[1] . substr($word, 0, 1) . substr($_this->_singular['merged']['irregular'][strtolower($regs[2])], 1);
            return $_this->_singularized[$word];
        }
        if (preg_match('/^(' . $_this->_singular['cacheUninflected'] . ')$/i', $word, $regs)) {
            $_this->_singularized[$word] = $word;
            return $word;
        }
        foreach ($_this->_singular['rules'] as $rule => $replacement) {
            if (preg_match($rule, $word)) {
                $_this->_singularized[$word] = preg_replace($rule, $replacement, $word);
                return $_this->_singularized[$word];
            }
        }
        $_this->_singularized[$word] = $word;
        return $word;
    }