Class Kitab\Compiler\IntermediateRepresentation\Class_
class Class_ extends Kitab\Compiler\IntermediateRepresentation\Entity
{
pub fn __construct(string $name);
pub fn 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
pub const TYPE = 'class';
-
Type of the entity. See parent.
Attributes
pub $final = false;
-
Represent whether the class is final or not.
A final class cannot be extended. It is a child of the inheritance hierarchy.
pub $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).
pub $parent = null;
-
Fully-qualified name of the class it extends if any.
pub $interfaces = [];
-
Fully-qualified names of the interfaces it implements if any.
pub $constants = [];
-
Collection of
Kitab\Compiler\IntermediateRepresentation\Constant
instances. pub $attributes = [];
-
Collection of
Kitab\Compiler\IntermediateRepresentation\Attribute
instances. pub $methods = [];
-
Collection of
Kitab\Compiler\IntermediateRepresentation\Method
instances.
Methods
-
pub fn __construct(string $name)
-
Allocate a class with a fully-qualified name. This is the only mandatory information.
-
pub fn getMethods(): array
-
Return all methods declared for this entity.
Interfaces
interface Kitab\Compiler\IntermediateRepresentation\HasMethods
- …