class CamelCaseToSnakeCaseNameConverter in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/symfony/serializer/NameConverter/CamelCaseToSnakeCaseNameConverter.php \Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter
CamelCase to Underscore name converter.
@author Kévin Dunglas <dunglas@gmail.com>
Hierarchy
- class \Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter implements NameConverterInterface
Expanded class hierarchy of CamelCaseToSnakeCaseNameConverter
5 files declare their use of CamelCaseToSnakeCaseNameConverter
- AbstractNormalizer.php in vendor/
symfony/ serializer/ Normalizer/ AbstractNormalizer.php - CamelCaseToSnakeCaseNameConverterTest.php in vendor/
symfony/ serializer/ Tests/ NameConverter/ CamelCaseToSnakeCaseNameConverterTest.php - GetSetMethodNormalizerTest.php in vendor/
symfony/ serializer/ Tests/ Normalizer/ GetSetMethodNormalizerTest.php - ObjectNormalizerTest.php in vendor/
symfony/ serializer/ Tests/ Normalizer/ ObjectNormalizerTest.php - PropertyNormalizerTest.php in vendor/
symfony/ serializer/ Tests/ Normalizer/ PropertyNormalizerTest.php
File
- vendor/
symfony/ serializer/ NameConverter/ CamelCaseToSnakeCaseNameConverter.php, line 19
Namespace
Symfony\Component\Serializer\NameConverterView source
class CamelCaseToSnakeCaseNameConverter implements NameConverterInterface {
/**
* @var array|null
*/
private $attributes;
/**
* @var bool
*/
private $lowerCamelCase;
/**
* @param null|array $attributes The list of attributes to rename or null for all attributes.
* @param bool $lowerCamelCase Use lowerCamelCase style.
*/
public function __construct(array $attributes = null, $lowerCamelCase = true) {
$this->attributes = $attributes;
$this->lowerCamelCase = $lowerCamelCase;
}
/**
* {@inheritdoc}
*/
public function normalize($propertyName) {
if (null === $this->attributes || in_array($propertyName, $this->attributes)) {
$snakeCasedName = '';
$len = strlen($propertyName);
for ($i = 0; $i < $len; ++$i) {
if (ctype_upper($propertyName[$i])) {
$snakeCasedName .= '_' . strtolower($propertyName[$i]);
}
else {
$snakeCasedName .= strtolower($propertyName[$i]);
}
}
return $snakeCasedName;
}
return $propertyName;
}
/**
* {@inheritdoc}
*/
public function denormalize($propertyName) {
$camelCasedName = preg_replace_callback('/(^|_|\\.)+(.)/', function ($match) {
return ('.' === $match[1] ? '_' : '') . strtoupper($match[2]);
}, $propertyName);
if ($this->lowerCamelCase) {
$camelCasedName = lcfirst($camelCasedName);
}
if (null === $this->attributes || in_array($camelCasedName, $this->attributes)) {
return $this->lowerCamelCase ? lcfirst($camelCasedName) : $camelCasedName;
}
return $propertyName;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CamelCaseToSnakeCaseNameConverter:: |
private | property | ||
CamelCaseToSnakeCaseNameConverter:: |
private | property | ||
CamelCaseToSnakeCaseNameConverter:: |
public | function |
Converts a property name to its denormalized value. Overrides NameConverterInterface:: |
|
CamelCaseToSnakeCaseNameConverter:: |
public | function |
Converts a property name to its normalized value. Overrides NameConverterInterface:: |
|
CamelCaseToSnakeCaseNameConverter:: |
public | function |