PHP generator

The PHP code generator is a plug-out directly written in C++.

The generated sources follows the definition made in BOUML at the artifact / class / operation / relation / attribute / extra member levels.

When the code generation is applied on a artifact associated to several classes, the code generation is made for all these classes. Nevertheless the the Php code generator produce first the code in memory and update the appropriate files only when it is necessary, to not change the last write date of the files for nothing. Depending on the toggle verbose code generation of the global menu Languages the code generator is verbose or not.

The Php code generator plug-out may be called on :

When the Php code generator is ask through the Tools menu, it is applied on the project, then on all the artifacts.

The name of the generated files depend on the artifact name, the extension depend on the language and is fixed for each by the generations settings (see below), the directory where the files are generated may be set in each package containing directly or indirectly the artifact (see generation directory).

artifact

The Php definition of a artifact is set through the Php source tabs of the artifact dialog.

The code generation depend on the stereotype of the artifact :

The generated file name is the artifact's name with the extension specified in the first Php tab of the generations settings :

There are four ways to produce the require_once forms

In BOUML the generated code is obtained by the substitution of macros in a text, the macros known by the Php code generator are :

Class

The Php definition of a class is set through the Uml, Parametrized, Instantiate and Php tabs of the class dialog.

A Php type definition may be a class, an interface or an enum defined through a class, depending on the stereotype and its translation in Php (see generation settings).

In BOUML the generated code is obtained by the substitution of macros in a text, the macros known by the Php code generator are :

In the special case where the class is declared external, its Php type declaration must contains a line indicating how the name of the class is generated, by default ${name} meaning that the name is produced unchanged, the only allowed keywords are ${name}, ${Name} and ${NAME}.An optional second line may be given to specify the require_once form to produce in artifact containing classes referencing this external class.

Operation

The Php definition of an operation is set through the Uml and Php tabs of the operation dialog.

The indentation of the first line of the declaration/definition give the indentation added to the class definition for all the operation definition.

In BOUML the generated code is obtained by the substitution of macros in a text, the macros known by the Php code generator are :

Notes :

Attribute

The Php definition of an attribute is set through the Uml and Php tabs of the attribute dialog.

The indentation of the first line of the definition give the indentation added to the class definition for all the attribute definition.

An attribute may be a standard attribute or the item of an enumeration defined through a class.

standard attribute

In BOUML the generated code is obtained by the substitution of macros in a text, the macros known by the Php code generator are :

Relation

The Php definition of a relation is set through the Uml and Php tabs of the relation dialog.

The indentation of the first line of the definition give the indentation added to the class definition for all the relation definition.

Relation equivalent to an attribute

In BOUML the generated code is obtained by the substitution of macros in a text, the macros known by the Php code generator are :

Inheritance from class/interface

The class inheritance are managed at the class level.

Inheritance from trait

In that special case the forms use are produced from the keyword ${member} at the class level.

Extra member

The Php definition of an extra member is set through the Php tabs of the extra member dialog.

No macros.


Previous : Java catalog

Next : Php reverse