1: <?php defined('_JOOS_CORE') or exit();
2:
3: /**
4: * Работа с формами слова
5: *
6: * @version 1.0
7: * @package Core\Libraries
8: * @subpackage Inflector
9: * @category Libraries
10: * @author Joostina Team <info@joostina.ru>
11: * @copyright (C) 2007-2012 Joostina Team
12: * @license MIT License http://www.opensource.org/licenses/mit-license.php
13: * Информация об авторах и лицензиях стороннего кода в составе Joostina CMS: docs/copyrights
14: *
15: * */
16: class joosInflector
17: {
18: /**
19: * Переводит строку в CamelCase
20: *
21: * @tutorial joosInflector::camelize('joostina php cms'); => JoostinaPhpCms
22: * @tutorial joosInflector::camelize('my cool class'); => MyCoolClass
23: *
24: * @param string $string строка ввода
25: * @return string
26: */
27: public static function camelize($string)
28: {
29: return str_replace(' ', '', ucwords(str_replace('_', ' ', $string)));
30: }
31:
32: /**
33: * Переводит строку из CamelCase в under_score
34: *
35: * @tutorial joosInflector::underscore('JoostinaPhpCms'); => joostina_php_cms
36: * @tutorial joosInflector::underscore('joosCoreAdmin'); => joos_core_admin
37: *
38: * @param string $string строка в CamelCase
39: * @return string строка в under_score
40: */
41: public static function underscore($string)
42: {
43: return strtolower(preg_replace('/(?<=\\w)([A-Z])/', '_\\1', $string));
44: }
45:
46: /**
47: * Переводит строку из under_score в человекочитаемые слова
48: *
49: * @tutorial joosInflector::humanize('joos_Core_Admin'); => Joos Core Admin
50: * @tutorial joosInflector::humanize('function_delete'); => Function delete
51: *
52: * @param $string
53: * @return string
54: */
55: public static function humanize($string)
56: {
57: return ucfirst(str_replace('_', ' ', $string));
58: }
59:
60: }
61: