PHP code example of dev-jeetu / case-converter
1. Go to this page and download the library: Download dev-jeetu/case-converter library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
dev-jeetu / case-converter example snippets
use DevJeetu\CaseConverter\Converter;
use DevJeetu\CaseConverter\CaseType;
// Simple conversions
echo Converter::toSnake('firstName'); // first_name
echo Converter::toCamel('first_name'); // firstName
echo Converter::toPascal('user-profile'); // UserProfile
echo Converter::toKebab('UserName'); // user-name
// Type-safe enum usage
echo Converter::convert('userName', CaseType::SNAKE); // user_name
echo Converter::convert('user_id', CaseType::PASCAL); // UserId
// Proper acronym handling
echo Converter::toSnake('XMLHttpRequest'); // xml_http_request
echo Converter::toCamel('parse_HTML'); // parseHTML
echo Converter::toPascal('JSON web token'); // JSONWebToken
// Unicode support
echo Converter::toCamel('πολύ-Καλό'); // πολύΚαλό
echo Converter::toSnake('ОЧЕНЬ_ПРИЯТНО'); // очень_приятно
echo Converter::toPascal('مرحبا-بالعالم'); // مرحبابالعالم
// Fluent interface
echo Converter::from('user_name')->toPascal(); // UserName
echo Converter::from('XMLParser')->toKebab(); // xml-parser
// API response transformation
$apiData = ['user_name' => 'john_doe', 'email_address' => '[email protected] '];
$frontendData = [];
foreach ($apiData as $key => $value) {
$frontendData[Converter::toCamel($key)] = $value;
}
// Result: ['userName' => 'john_doe', 'emailAddress' => '[email protected] ']
class User {
public function fromDatabase(array $row): void {
foreach ($row as $column => $value) {
$property = Converter::toCamel($column);
if (property_exists($this, $property)) {
$this->$property = $value;
}
}
}
}
$config = [
'database-host' => 'localhost',
'cache-driver' => 'redis',
'mail-smtp-port' => 587
];
$phpConfig = [];
foreach ($config as $key => $value) {
$phpConfig[Converter::toSnake($key)] = $value;
}
// Result: ['database_host' => 'localhost', 'cache_driver' => 'redis', 'mail_smtp_port' => 587]
// Handle international content
$internationalData = [
'user_name' => 'Иван_Петров',
'email_address' => '[email protected] ',
'country_code' => 'RU'
];
$processedData = [];
foreach ($internationalData as $key => $value) {
$processedData[Converter::toCamel($key)] = $value;
}
// Result: ['userName' => 'Иван_Петров', 'emailAddress' => '[email protected] ', 'countryCode' => 'RU']
$tableName = 'user_profiles';
$className = Converter::toPascal($tableName); // UserProfiles
$apiEndpoint = 'user-profile-data';
$serviceClass = Converter::toPascal($apiEndpoint); // UserProfileData
$title = 'My Blog Post Title';
$slug = Converter::toKebab($title); // my-blog-post-title
$internationalTitle = 'Мой Блог Пост Заголовок';
$internationalSlug = Converter::toKebab($internationalTitle); // мой-блог-пост-заголовок
// Greek characters
echo Converter::toCamel('πολύ-Καλό'); // πολύΚαλό
echo Converter::toSnake('πολύ-Καλό'); // πολύ_καλό
echo Converter::toPascal('πολύ-Καλό'); // ΠολύΚαλό
// Russian characters
echo Converter::toCamel('ОЧЕНЬ_ПРИЯТНО'); // оченьПриятно
echo Converter::toSnake('ОЧЕНЬ_ПРИЯТНО'); // очень_приятно
echo Converter::toPascal('ОЧЕНЬ_ПРИЯТНО'); // ОченьПриятно
// Arabic characters
echo Converter::toCamel('مرحبا-بالعالم'); // مرحبابالعالم
echo Converter::toSnake('مرحبا-بالعالم'); // مرحبا_بالعالم
echo Converter::toPascal('مرحبا-بالعالم'); // مرحبابالعالم
// Chinese characters
echo Converter::toCamel('你好-世界'); // 你好世界
echo Converter::toSnake('你好-世界'); // 你好_世界
echo Converter::toPascal('你好-世界'); // 你好世界
// Japanese characters
echo Converter::toCamel('こんにちは-世界'); // こんにちは世界
echo Converter::toSnake('こんにちは-世界'); // こんにちは_世界
echo Converter::toPascal('こんにちは-世界'); // こんにちは世界
// Mixed Unicode with ASCII
echo Converter::toCamel('user-имя'); // userИмя
echo Converter::toSnake('user-имя'); // user_имя
echo Converter::toPascal('user-имя'); // UserИмя
// ASCII acronyms are preserved (XML, HTTP, API, etc.)
echo Converter::toCamel('XML parser'); // XMLParser (not xMLParser)
echo Converter::toPascal('HTML element'); // HTMLElement (not HtmlElement)
echo Converter::toCamel('parse HTML'); // parseHTML (not parseHtml)
echo Converter::toSnake('parseHTML'); // parse_html
// Complex acronym combinations
echo Converter::toSnake('XMLHttpRequest'); // xml_http_request
echo Converter::toCamel('Get_HTTPS_Url'); // getHTTPSUrl
echo Converter::toPascal('JSON_web_token'); // JSONWebToken
// Unicode words are treated as normal words (not acronyms)
echo Converter::toCamel('ОЧЕНЬ_ПРИЯТНО'); // оченьПриятно (not ОЧЕНЬПриятно)
echo Converter::toPascal('πολύ-Καλό'); // ΠολύΚαλό (not ΠΟΛΎΚαλό)
// Brand names with special casing
echo Converter::toSnake('iPhone'); // i_phone
echo Converter::toPascal('mac_OS'); // MacOS
use DevJeetu\CaseConverter\CaseType;
// Type-safe conversions
$format = CaseType::SNAKE;
echo $format->convert('firstName'); // first_name
// Get format information
echo $format->getDescription(); // "Lowercase words separated by underscores"
echo $format->getExample(); // my_name_is_bond
print_r($format->getAliases()); // ['snake', 'snake_case', 'underscore', 'lower_snake']
// Find a format by string
$format = CaseType::fromString('kebab-case');
echo $format->convert('userName'); // user-name
// All these work (case-insensitive)
echo Converter::convert('firstName', 'snake'); // first_name
echo Converter::convert('firstName', 'kebab-case'); // first-name
echo Converter::convert('firstName', 'dash'); // first-name
echo Converter::convert('firstName', 'hyphen'); // first-name
// String or enum - both work
echo Converter::convert('user_id', 'pascal'); // UserId
echo Converter::convert('user_id', CaseType::PASCAL); // UserId
// Check if a format is supported
if (Converter::isFormatSupported('snake_case')) {
// Convert safely
}
// Get all supported formats
$formats = Converter::getSupportedFormats(); // Array of CaseType enums
$names = Converter::getSupportedFormatNames(); // Array of format names
$aliases = Converter::getSupportedAliases(); // All possible aliases
// Get detailed format information
$info = Converter::getFormatInfo(CaseType::CAMEL);
/*
DevJeetu\CaseConverter\DTOs\CaseFormatInfo Object
(
[name] => camel
[emoji] => 🐪
[description] => First word lowercase, later words capitalized, no separators
[example] => myNameIsBond
[delimiter] =>
[aliases] => Array
(
[0] => camel
[1] => camelcase
[2] => camel_case
[3] => lower_camel
[4] => lowerCamel
)
[converterClass] => DevJeetu\CaseConverter\Converters\CamelCase
[isCapitalized] =>
[isUppercase] =>
[isLowercase] => 1
)
*/
use DevJeetu\CaseConverter\Converter;
// Method chaining
$result = Converter::from('XMLHttpRequest')->toSnake(); // xml_http_request
// Convert to any format
$result = Converter::from('user_profile')->to('pascal'); // UserProfile
$result = Converter::from('firstName')->to(CaseType::KEBAB); // first-name
use DevJeetu\CaseConverter\Converters\SnakeCase;
use DevJeetu\CaseConverter\Converters\CamelCase;
echo SnakeCase::convert('firstName'); // first_name
echo CamelCase::convert('user_name'); // userName
use DevJeetu\CaseConverter\Converter;
use DevJeetu\CaseConverter\Exceptions\UnsupportedFormatException;
use DevJeetu\CaseConverter\Exceptions\ConverterNotFoundException;
try {
$result = Converter::convert('test', 'invalid_format');
} catch (UnsupportedFormatException $e) {
echo $e->getMessage();
// "Unsupported format: 'invalid_format'. Supported formats: camel, pascal, snake, kebab, macro, train, dot, lower, upper, title, path, ada, cobol, sentence"
}
// Safe checking
if (Converter::isFormatSupported('snake')) {
$result = Converter::convert('test', 'snake');
} else {
// Handle unsupported format
}
// Get all supported formats for validation
$supportedFormats = Converter::getSupportedFormatNames();
$supportedAliases = Converter::getSupportedAliases();
// Performance benchmarks (1000 iterations each)
// - Basic conversions: ~0.1ms for 1000 iterations
// - Unicode conversions: ~0.2ms for 1000 iterations
// - Complex acronym handling: ~0.1ms for 1000 iterations
// - Bulk operations: 1000 conversions in <0.1 seconds
// - Memory efficient with minimal allocations
// - Scales linearly with input string length