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;
}
}