juy/character-solver
Laravel middleware that converts specific HTML entities back into characters (e.g., ç→ç, ö→ö, ü→ü). Includes configurable translation map and an enable/disable flag; can run globally or be added manually to the HTTP Kernel.
composer require juy/character-solver
Juy\CharacterSolver\ServiceProvider::class to config/app.php under providers.php artisan vendor:publish --provider="Juy\CharacterSolver\ServiceProvider" --tag="config"
ç) to their character equivalents (e.g., ç) globally via middleware. No additional code is needed for basic usage.Juy\CharacterSolver\Middleware\CharacterSolver) by default in Laravel’s HTTP kernel (app/Http/Kernel.php). This middleware runs on every request, converting HTML entities in the response.config/character-solver.php to add/remove replacements:
'replacements' => [
'é' => 'é',
'É' => 'É',
],
config/app.php or boot the service provider:
public function boot()
{
$this->app['config']->set('character-solver.replacements', [
'&custom;' => 'value',
]);
}
$solver = app('character-solver');
$converted = $solver->solve('ç ö'); // Returns "ç ö"
Blade::directive('solve', function ($expression) {
return "<?php echo app('character-solver')->solve({$expression}); ?>";
});
Usage:
@solve('ç is converted to ç')
// Remove from $middleware in app/Http/Kernel.php
\Juy\CharacterSolver\Middleware\CharacterSolver::class,
&ccedil; (should remain ç if not configured).// In ServiceProvider::boot()
$solver = $this->app->make('character-solver');
$solver->setCallback(function ($entity) {
Log::warning("Unhandled entity: {$entity}");
});
$this->assertEquals('ç', app('character-solver')->solve('ç'));
$this->app->bind('character-solver', function () {
return new \App\CustomCharacterSolver();
});
$solver->setCallback(function ($entity, $context) {
if ($context['locale'] === 'tr' && $entity === '&i') {
return 'ı';
}
return null; // Skip default replacement
});
public function getNameAttribute($value)
{
return app('character-solver')->solve($value);
}
Ç). Ensure consistency when adding new replacements.php artisan config:cache
Route::middleware(['character-solver'])->group(function () {
// Routes where conversion is needed
});
How can I help you explore Laravel packages today?