Class Kitab\Compiler\IntermediateRepresentation\Class_

class Class_ extends Kitab\Compiler\IntermediateRepresentation\Entity
{
    public function __construct(string $name);
    public function getMethods(): array;
}

A class intermediate representation.

A class is one of the major entity in PHP. It exposes constants, attributes, and methods, in addition to some properties (like final, abstract etc.). A class can inherit from one other class, and can implement one or more interfaces.

Examples

In this example, a new final class C is built, with 2 attributes: foo and bar, and one method: f.

$class               = new Kitab\Compiler\IntermediateRepresentation\Class_('C');
$class->attributes[] = new Kitab\Compiler\IntermediateRepresentation\Attribute('foo');
$class->attributes[] = new Kitab\Compiler\IntermediateRepresentation\Attribute('bar');
$class->methods[]    = new Kitab\Compiler\IntermediateRepresentation\Method('f');

Constants

public const TYPE = 'class';

Type of the entity. See parent.

Attributes

public $final = false;

Represent whether the class is final or not.

A final class cannot be extended. It is a child of the inheritance hierarchy.

public $abstract = false;

Represent whether the class is abstract or not.

An abstract class cannot be instanciated. In addition, some methods can be marked as abstract too. Such methods have no implementations (bodies), they only provide a signature (inputs and output).

public $parent = null;

Fully-qualified name of the class it extends if any.

public $interfaces = [];

Fully-qualified names of the interfaces it implements if any.

public $constants = [];

Collection of Kitab\Compiler\IntermediateRepresentation\Constant instances.

public $attributes = [];

Collection of Kitab\Compiler\IntermediateRepresentation\Attribute instances.

public $methods = [];

Collection of Kitab\Compiler\IntermediateRepresentation\Method instances.

Methods

public function __construct(string $name)

Allocate a class with a fully-qualified name. This is the only mandatory information.

public function getMethods(): array

Return all methods declared for this entity.

Interfaces

interface Kitab\Compiler\IntermediateRepresentation\HasMethods