123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- <?php
- class sfInflector
- {
-
- public static function camelize($lower_case_and_underscored_word)
- {
- $tmp = $lower_case_and_underscored_word;
- $tmp = sfToolkit::pregtr($tmp, array('#/(.?)#e' => "'::'.strtoupper('\\1')",
- '/(^|_|-)+(.)/e' => "strtoupper('\\2')"));
- return $tmp;
- }
-
- public static function underscore($camel_cased_word)
- {
- $tmp = $camel_cased_word;
- $tmp = str_replace('::', '/', $tmp);
- $tmp = sfToolkit::pregtr($tmp, array('/([A-Z]+)([A-Z][a-z])/' => '\\1_\\2',
- '/([a-z\d])([A-Z])/' => '\\1_\\2'));
- return strtolower($tmp);
- }
-
- public static function demodulize($class_name_in_module)
- {
- return preg_replace('/^.*::/', '', $class_name_in_module);
- }
-
- public static function foreign_key($class_name, $separate_with_underscore = true)
- {
- return sfInflector::underscore(sfInflector::demodulize($class_name)).($separate_with_underscore ? "_id" : "id");
- }
-
- public static function tableize($class_name)
- {
- return sfInflector::underscore($class_name);
- }
-
- public static function classify($table_name)
- {
- return sfInflector::camelize($table_name);
- }
-
- public static function humanize($lower_case_and_underscored_word)
- {
- if (substr($lower_case_and_underscored_word, -3) === '_id')
- {
- $lower_case_and_underscored_word = substr($lower_case_and_underscored_word, 0, -3);
- }
- return ucfirst(str_replace('_', ' ', $lower_case_and_underscored_word));
- }
- }
|