Class Kitab\Compiler\IntermediateRepresentation\Attribute

class Attribute
{
    public function __construct(string $name);
    public function __toString(): string;
}

An attribute intermediate representation.

An attribute is a property of a class like entity.

Examples

In this example, a new attribute foo is built, with a protected visibility, and a default value sets to 42.

$attribute             = new Kitab\Compiler\IntermediateRepresentation\Attribute('foo');
$attribute->visibility = $attribute::VISIBILITY_PROTECTED;
$attribute->default    = '42';

assert('protected $foo = 42' === (string) $attribute);

Constants

public const VISIBILITY_PUBLIC = 0;

Represent a public attribute.

public const VISIBILITY_PROTECTED = 1;

Represent a protected attribute.

public const VISIBILITY_PRIVATE = 2;

Represent a private private.

Attributes

public $visibility = self::VISIBILITY_PUBLIC;

The visibility of the attribute, represented by the self::VISIBILITY_* constants.

public $static = false;

Represent whether the attribute is static or not.

public $name

Represent the name of the attribute, without the leading $.

public $default = null;

A string containing only PHP code representing the default value of the attribute if any.

public $documentation = '';

Associated documentation of the attribute.

Methods

public function __construct(string $name)

Allocate an attribute with a name. This is the only mandatory information.

public function __toString(): string

Transform this intermediate representation into its PHP representation.

The original formatting is not kept. The applied formatting is designed for Kitab.