Skip to content

TrimCast

Trims whitespace from string values on both hydration and serialization.

Usage

php
use StdOut\SimpleDataObjects\Attributes\Cast;
use StdOut\SimpleDataObjects\Casts\TrimCast;

class ContactData extends BaseData
{
    public function __construct(
        #[Cast(new TrimCast)]
        public readonly string $name,

        #[Cast(new TrimCast)]
        public readonly string $email,
    ) {}
}

$contact = ContactData::from([
    'name'  => '  Alice  ',
    'email' => ' alice@example.com ',
]);

$contact->name;  // 'Alice'
$contact->email; // 'alice@example.com'

Null Handling

Returns null for null input.

Combining with Validation

php
#[Cast(new TrimCast)]
#[Rules(['required', 'string', 'min:2'])]
public readonly string $name,

TIP

Trim before validation to avoid "min:2" failing because of leading/trailing spaces. The cast runs during hydration which happens after validation in fromValidated(). If you need trimmed values during validation, trim in a middleware or request preprocessor instead.

Released under the MIT License.