Метод Str::transliterate у Laravel забезпечує простий спосіб нормалізації текстового вмісту, перетворюючи спеціальні символи на їхні ASCII-еквіваленти.
Перетворення спеціальних символів на ASCII:
use Illuminate\Support\Str;
$content = Str::transliterate('Café Ñoño & Résumé');
Ось як можна використати його в сервісі обробки контенту:
class ContentProcessor
{
public function processFormData(array $data)
{
return collect($data)->map(function ($value) {
return is_string($value)
? Str::transliterate($value)
: $value;
})->all();
}
public function createSlug(string $title)
{
return Str::slug(Str::transliterate($title));
}
public function normalizeSearchQuery(string $query)
{
return strtolower(Str::transliterate($query));
}
public function sanitizeKeywords(array $keywords)
{
return array_map(function ($keyword) {
return Str::transliterate($keyword);
}, $keywords);
}
}
class ArticleController extends Controller
{
public function create(Request $request, ContentProcessor $processor)
{
$processedData = $processor->processFormData([
'title' => $request->title,
'content' => $request->content,
'keywords' => $request->keywords
]);
Article::create($processedData);
}
}
Метод transliterate спрощує забезпечення єдиного формату тексту у вашому додатку