D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
psa
/
admin
/
plib
/
vendor
/
jms
/
serializer
/
src
/
Naming
/
Filename :
CamelCaseNamingStrategy.php
back
Copy
<?php declare(strict_types=1); namespace JMS\Serializer\Naming; use JMS\Serializer\Metadata\PropertyMetadata; /** * Generic naming strategy which translates a camel-cased property name. * * @author Johannes M. Schmitt <schmittjoh@gmail.com> */ final class CamelCaseNamingStrategy implements PropertyNamingStrategyInterface { /** * @var string */ private $separator; /** * @var bool */ private $lowerCase; public function __construct(string $separator = '_', bool $lowerCase = true) { $this->separator = $separator; $this->lowerCase = $lowerCase; } public function translateName(PropertyMetadata $property): string { $name = preg_replace('/[A-Z]+/', $this->separator . '\\0', $property->name); if ($this->lowerCase) { return strtolower($name); } return ucfirst($name); } }