mirror of
				https://github.com/webmasterskaya/joomla-oauth-server.git
				synced 2025-10-31 20:03:21 +03:00 
			
		
		
		
	Добавил CasesHelper
This commit is contained in:
		
							parent
							
								
									7c3873df0e
								
							
						
					
					
						commit
						a48a9b3a2f
					
				
							
								
								
									
										138
									
								
								com_oauthserver/administrator/src/Helper/CasesHelper.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								com_oauthserver/administrator/src/Helper/CasesHelper.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,138 @@ | ||||
| <?php | ||||
| 
 | ||||
| namespace Webmasterskaya\Component\OauthServer\Administrator\Helper; | ||||
| 
 | ||||
| /** | ||||
|  * Class for convert string to different cases styles | ||||
|  * such as camelCase, kebab-case etc. | ||||
|  * | ||||
|  * @since       version | ||||
|  */ | ||||
| class CasesHelper | ||||
| { | ||||
|     /** | ||||
|      * Convert string to snake_case_style | ||||
|      * | ||||
|      * @param string $string input string | ||||
|      * | ||||
|      * @return string | ||||
|      * | ||||
|      * @since version | ||||
|      */ | ||||
|     public static function snakeize(string $string): string | ||||
|     { | ||||
|         $string = static::clean($string, '_'); | ||||
| 
 | ||||
|         return strtolower($string); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Convert string to kebab-case-style | ||||
|      * | ||||
|      * @param string $string input string | ||||
|      * | ||||
|      * @return string | ||||
|      * | ||||
|      * @since version | ||||
|      */ | ||||
|     public static function kebabize(string $string): string | ||||
|     { | ||||
|         $string = static::clean($string, '-'); | ||||
| 
 | ||||
|         return strtolower($string); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Convert string to dotted.case.style | ||||
|      * | ||||
|      * @param string $string input string | ||||
|      * | ||||
|      * @return string | ||||
|      * | ||||
|      * @since version | ||||
|      */ | ||||
|     public static function dottedize(string $string) | ||||
|     { | ||||
|         $string = static::clean($string, '.'); | ||||
| 
 | ||||
|         return strtolower($string); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Convert string to lowerCameCase, UpperCamelCase, PascalCase styles | ||||
|      * | ||||
|      * @param string $string input string | ||||
|      * @param bool $uc_first true - to UpperCamelCase, false - to lowerCamelCase | ||||
|      * | ||||
|      * @return string | ||||
|      * | ||||
|      * @since version | ||||
|      */ | ||||
|     public static function camelize(string $string, bool $uc_first = false): string | ||||
|     { | ||||
|         $string = self::snakeize($string); | ||||
|         $string = ucwords($string, '_'); | ||||
|         $string = str_replace('_', '', $string); | ||||
| 
 | ||||
|         return $uc_first ? ucfirst($string) : lcfirst($string); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Convert string to PascalCase (without starting digits) | ||||
|      * | ||||
|      * @param string $string input string | ||||
|      * | ||||
|      * @return string | ||||
|      * | ||||
|      * @since version | ||||
|      */ | ||||
|     public static function classify(string $string): string | ||||
|     { | ||||
|         $string = self::camelize($string, true); | ||||
|         $string = preg_replace('/^\d+/', '', $string); | ||||
| 
 | ||||
|         return ucfirst($string); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * @param string $string | ||||
|      * @param string $replacement | ||||
|      * | ||||
|      * @return string | ||||
|      * | ||||
|      * @since version | ||||
|      */ | ||||
|     private static function clean(string $string, string $replacement): string | ||||
|     { | ||||
|         if (empty($replacement)) { | ||||
|             throw new \RuntimeException('The replacement cannot be empty'); | ||||
|         } | ||||
| 
 | ||||
|         // Prepare $replacement to use in regular expression
 | ||||
|         $preg = preg_quote($replacement, '/'); | ||||
| 
 | ||||
|         // Replace multiple spaces between characters
 | ||||
|         $string = (string)preg_replace('/[\s.]+/', $replacement, $string); | ||||
| 
 | ||||
|         $legal_cars = str_replace($replacement, '', '_-.'); | ||||
|         $legal_cars = preg_quote($legal_cars); | ||||
| 
 | ||||
|         // Remove all illegal characters
 | ||||
|         $string = (string)preg_replace('/[^0-9a-zA-Z' . $legal_cars . $preg . ']/', '', $string); | ||||
| 
 | ||||
|         // Replace all non-alphabetic characters with replacement
 | ||||
|         $string = (string)preg_replace('/[' . $legal_cars . ']/', $replacement, $string); | ||||
| 
 | ||||
|         // Inserts a replacement before all words starting with uppercase characters
 | ||||
|         $string = (string)preg_replace('/(.)([A-Z][a-z]+)/', '$1' . $replacement . '$2', $string); | ||||
| 
 | ||||
|         // Insert a replacement between digit and uppercase characters
 | ||||
|         $string = (string)preg_replace('/([a-z\d])([A-Z])/', '$1' . $replacement . '$2', $string); | ||||
| 
 | ||||
|         // Replace multiple replacement
 | ||||
|         $string = (string)preg_replace('/[' . $preg . ']+([A-Z0-9])/', $replacement . '$1', $string); | ||||
| 
 | ||||
|         // Return without replacement at the beginning and end of the line
 | ||||
|         return trim($string, $replacement); | ||||
|     } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Artem Vasilev
						Artem Vasilev