Skip to content

A library for creating PHP objects with typed properties

License

Notifications You must be signed in to change notification settings

dealnews/typed-objects

Repository files navigation

PHP Objects with typed/constrained properties

A library for creating PHP objects with typed properties.

It supports all of the types that are supported by dealnews/constraints.

Object with Typed Properties Example

// A very simple example
class Foo extends \DealNews\TypedObjects\TypedProperty {
    protected $id;
    protected $name;

    const CONSTRAINTS = [
        "id" => [
            "type" => "integer"
        ],
        "name" => [
            "type" => "string"
        ],
    ];
}

$foo = new Foo();
$foo->id = "1"; // will be integer 1
$foo->id = "string"; // will throw an exception

Typed Array Example

class FooSet extends \DealNews\TypedObjects\TypedArray {
    const REQUIRED_TYPE = "Foo";
}

$set = new FooSet();
$set[] = new Foo(); // allowed
$set[] = 1; // Throws an exception

About

A library for creating PHP objects with typed properties

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages