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
- …