Skip to content
Class & Property AttributeSerialization Stage

Hidden

Hidden allows you to exclude properties from serialization.

Basic Usage

php
use Alamellama\Carapace\Attributes\Hidden;
use Alamellama\Carapace\Data;

class User extends Data
{
    public function __construct(
        public string $name,
        public string $email,

        #[Hidden]
        public string $password,
    ) {}
}

$user = User::from([
    'name' => 'John Doe',
    'email' => 'john.doe@example.com',
    'password' => 'secret123',
]);

$user->toArray();
// [
//     'name' => 'John Doe',
//     'email' => 'john.doe@example.com',
//     // password is excluded from serialization
// ]

You can hide all properties by default at the class level.

php
#[Hidden]
class SecureUser extends Data
{
    public function __construct(
        public string $name,
        public string $email,
        public string $password,
    ) {}
}

$secure = SecureUser::from([
    'name' => 'John Doe',
    'email' => 'john.doe@example.com',
    'password' => 'secret123',
]);

$secure->toArray();
// []