dms/dms-filter
Filter and sanitize object properties via PHP attributes. Annotate fields with rules like Trim, StripTags, and StripNewlines, then run a Filter service to clean entity values automatically—ideal alongside Symfony Validator and for consistent input normalization.
Illuminate\Validation) or form request filtering, but this package offers pre-processing (e.g., sanitization) before validation.php and ext-json), but may require Doctrine Annotations for PHP <8.0 compatibility.DMS\Filter\Filter to app container).Str::* helpers or custom pipeline filters.Str::of($input)->replace(...)) transition to annotations?app()->make(Attribute::class)).retrieved, saved) or accessors/mutators to apply filters.toArray()/toJson() via macro or trait.prepareForValidation() or sanitize() methods.Illuminate\Validation or spatie/laravel-query-builder (for query-level filtering).spatie/array-to-object or custom pipelines.User, Post) to test annotation performance and edge cases.Str::* sanitization with annotations (e.g., #[Filter\Trim] instead of trim($request->input('name'))).dnoegel/php-xdg-base-dir for annotation parsing.doctrine/annotations if using PHP <8.0 (resolve via composer overrides).composer require dms/dms-filter.DMS\Filter\Filter to Laravel’s container.#[Filter\StripTags]
#[Filter\EscapeHtml]
public string $description;
App\Http\Middleware\FilterRequests:
public function handle(Request $request, Closure $next) {
$filtered = (new Filter())->filter($request->all());
$request->merge($filtered);
return $next($request);
}
public function getNameAttribute(string $name): string {
return (new Filter())->filter($this->name);
}
Str::* calls.FILTER_RULES.md file.Xdebug to identify slow reflections.laravel-debugbar).@throws in custom filters.#[Filter\Recursive]).null, false, nested arrays).docs/ folder.Str::* to annotations.How can I help you explore Laravel packages today?