/** * Gets the humanized name of the controller * * @param bool $plural * @return string */ public function getName($plural = false) { $name = YdCakeInflector::humanize(YdCakeInflector::underscore(str_replace('Controller', '', get_class($this->getOwner())))); return $plural ? YdCakeInflector::pluralize($name) : $name; //$name = preg_replace('/(?<![A-Z])[A-Z]/', ' \0', str_replace('Controller', '', get_class($this->getOwner()))); //$name = ucwords(trim(strtolower(str_replace(array('-', '_', '.'), ' ', $name)))); //return $name . ($plural ? 's' : ''); }
/** * Adds custom inflection $rules, of either 'plural', 'singular' or 'transliteration' $type. * * ### 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')); * }}} * * @param string $type The type of inflection, either 'plural', 'singular' or 'transliteration' * @param array $rules Array of rules to be added. * @param boolean $reset If true, will unset default inflections for all * new rules that are being defined in $rules. * @return void */ public static function rules($type, $rules, $reset = false) { $var = '_' . $type; switch ($type) { case 'transliteration': if ($reset) { self::$_transliteration = $rules; } else { self::$_transliteration = $rules + self::$_transliteration; } break; default: foreach ($rules as $rule => $pattern) { if (is_array($pattern)) { if ($reset) { self::${$var}[$rule] = $pattern; } else { if ($rule === 'uninflected') { self::${$var}[$rule] = array_merge($pattern, self::${$var}[$rule]); } else { self::${$var}[$rule] = $pattern + self::${$var}[$rule]; } } unset($rules[$rule], self::${$var}['cache' . ucfirst($rule)]); if (isset(self::${$var}['merged'][$rule])) { unset(self::${$var}['merged'][$rule]); } if ($type === 'plural') { self::$_cache['pluralize'] = self::$_cache['tableize'] = array(); } elseif ($type === 'singular') { self::$_cache['singularize'] = array(); } } } self::${$var}['rules'] = $rules + self::${$var}['rules']; } }
/** * Gets the humanized name of the controller * * @param bool $plural * @return string */ public function getName($plural = false) { Yii::import('dressing.components.YdCakeInflector'); $name = YdCakeInflector::humanize(YdCakeInflector::underscore(str_replace('Controller', '', get_class($this->getOwner())))); return $plural ? YdCakeInflector::pluralize($name) : $name; }