src/Filter/UppercaseWordsFirstCharacterFilter.php
<?php
namespace Squirrel\Strings\Filter;
use Squirrel\Strings\Common\RegexExceptionTrait;
use Squirrel\Strings\StringFilterInterface;
class UppercaseWordsFirstCharacterFilter implements StringFilterInterface
{
use RegexExceptionTrait;
public function filter(string $string): string
{
$string = \preg_replace_callback('/\b(\w)/u', function (array $matches): string {
return \mb_strtoupper($matches[1], 'UTF-8');
}, $string);
// @codeCoverageIgnoreStart
if ($string === null) {
throw $this->generateRegexException();
}
// @codeCoverageIgnoreEnd
return $string;
}
}