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

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

### Usage: {{{ Inflector::rules('plural', array('/^(inflect)or$/i' => '\1ables')); Inflector::rules('plural', array( 'rules' => array('/^(inflect)ors$/i' => '\1ables'), 'uninflected' => array('dontinflectme'), 'irregular' => array('red' => 'redlings') )); Inflector::rules('transliteration', array('/å/' => 'aa')); }}}
public rules ( string $type, array $rules, boolean $reset = false )
$type string The type of inflection, either 'plural', 'singular' or 'transliteration'
$rules array Array of rules to be added.
$reset boolean If true, will unset default inflections for all new rules that are being defined in $rules.
    public function rules($type, $rules, $reset = false)
    {
        $_this =& self::getInstance();
        $var = '_' . $type;
        switch ($type) {
            case 'transliteration':
                if ($reset) {
                    $_this->_transliteration = $rules;
                } else {
                    $_this->_transliteration = $rules + $_this->_transliteration;
                }
                break;
            default:
                foreach ($rules as $rule => $pattern) {
                    if (is_array($pattern)) {
                        if ($reset) {
                            $_this->{$var}[$rule] = $pattern;
                        } else {
                            $_this->{$var}[$rule] = array_merge($pattern, $_this->{$var}[$rule]);
                        }
                        unset($rules[$rule], $_this->{$var}['cache' . ucfirst($rule)]);
                        if (isset($_this->{$var}['merged'][$rule])) {
                            unset($_this->{$var}['merged'][$rule]);
                        }
                        if ($type === 'plural') {
                            $_this->_pluralized = $_this->_tableize = array();
                        } elseif ($type === 'singular') {
                            $_this->_singularized = array();
                        }
                    }
                }
                $_this->{$var}['rules'] = array_merge($rules, $_this->{$var}['rules']);
                break;
        }
    }