dealnews/typed-objects

Base classes for creating objects with typed/constrained properties

v1.1.0 2019-06-30 14:23 UTC

This package is auto-updated.

Last update: 2024-11-09 01:33:10 UTC


README

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