actengage/sanitize
Sanitize
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
Related Packages
socialism/laravel-phone
Adds a phone validator to Laravel based on Google's libphonenumber API.
36
0
propaganistas/laravel-phone
Adds phone number functionality to Laravel based on Google's libphonenumber API.
43,538,120
3,026
ellisio/laravel-phone
A phone validator for Laravel using the free Twilio phone lookup service.
29,983
11
stuyam/laravel-phone-validator
A phone validator for Laravel using the free Twilio phone lookup service.
62,445
28