actengage / sanitize
A collection of common sanitizer functions.
v3.0.0
2026-03-17 19:08 UTC
Requires
- php: ^8.2
- laravel/framework: ^11.0|^12.0|^13.0
Requires (Dev)
- larastan/larastan: ^3.9
- laravel/boost: ^2.3
- laravel/pint: ^1.8
- orchestra/testbench: ^9.0
- pestphp/pest: *
- pestphp/pest-plugin-laravel: *
- phpunit/phpunit: ^10.0
- rector/rector: ^2.3
This package is auto-updated.
Last update: 2026-03-17 19:09:52 UTC
README
A collection of classes used to sanitize common inputs like email addresses, phone numbers, and zip codes.
Installation
composer require actengage/sanitize
Basic Usage
use Actengage\Sanitize\Facades\Sanitize; Sanitize::email(' JOHN.doe @gmail.com '); // johndoe@gmail.com Sanitize::phone('(888) 123-1234'); // 8881231234 Sanitize::zip('12345'); // 12345
Attribute Casts
You can cast Eloquent attributes as sanitized values.
use Actengage\Sanitize\Casts\Email; use Actengage\Sanitize\Casts\Phone; use Actengage\Sanitize\Casts\Zip; class User extends Model { protected $guarded = []; protected $casts = [ 'email' => Email::class, 'phone' => Phone::class, 'zip' => Zip::class, ]; } $user = User::create([ 'email' => ' john.doe@gmail.com ', 'phone' => '1-800-567-1234', 'zip' => '1234', ]); $user->email; // johndoe@gmail.com $user->phone; // 8005671234 $user->zip; // 01234
Validation Rules
Validation rules are included for each sanitizer.
use Actengage\Sanitize\Rules\Email; use Actengage\Sanitize\Rules\Phone; use Actengage\Sanitize\Rules\Zip; $request->validate([ 'email' => ['required', new Email], 'phone' => ['required', new Phone], 'zip' => ['required', new Zip], ]);
Middleware
The SanitizeInputs middleware automatically sanitizes matching request fields.
use Actengage\Sanitize\Http\Middleware\SanitizeInputs; Route::middleware(SanitizeInputs::class)->group(function () { // Request inputs for email, phone, and zip are sanitized automatically });
Custom Sanitizer Macros
You can add additional sanitizer functions using macros.
use Actengage\Sanitize\Facades\Sanitize; Sanitize::macro('number', function (?string $value) { return is_numeric($value) ? $value : null; }); Sanitize::number('123'); // "123" Sanitize::number('abc'); // null
Publishing a New Release
This package uses changesets for automated versioning and releases.
- Create a branch and make your changes
- Add a changeset describing the change:
Select the bump level (patch, minor, or major) and write a summary. See the changeset skill for semver rules specific to this package.pnpm changeset - Open a PR — CI runs Pint, PHPStan, Rector, and Pest
- Merge the PR — the release workflow creates a "Version Packages" PR that bumps the version in
package.jsonand updatesCHANGELOG.md - Review and merge the "Version Packages" PR — a git tag and GitHub Release are created automatically