Configuration¶
There are two places to configure the Extension Builder:
Globally, in the Extension Configuration module of the TYPO3 backend.
Locally, in the file
Configuration/ExtensionBuilder/settings.yaml
of the generated extension.
Global configuration¶
In the TYPO3 backend go to Settings > Extension Configuration and open the configuration of the Extension Builder. Here are several settings configurable:
Setting |
Description |
Default |
Enable roundtrip mode |
If you enable the roundtrip mode, you can modify the generated files and your changes will be preserved even if you customize the extension again in the Extension Builder. For more information on the roundtrip mode, see the page "Roundtrip mode". If you disable it (kickstart mode), all files are regenerated every time you save in the Extension Builder. |
true |
Backup on save |
The Extension Builder creates a backup of the extension every time it is saved if this option is set to true. |
true |
Backup directory |
The directory where the Extension Builder stores the backup –
specified as an absolute path or relative to |
var/tx_extensionbuilder/backups |
Local configuration¶
After the initial creation of an extension, you will find the file
Configuration/ExtensionBuilder/settings.yaml
in the extension which
contains the following extension specific settings:
Overwrite settings¶
Note
These settings only apply if the roundtrip mode is enabled in the global configuration.
The nesting reflects the file structure and a setting applies recursively to all files and subfolders of a file path.
Setting |
Description |
merge |
All properties, methods and method bodies of class files are modified and not overwritten. Existing keys and identifiers in language files are preserved. In any other file you will find a split token at the end of the file. The part before this token is overwritten, the part after is preserved. |
keep |
These files are never overwritten.* |
skip |
These files are not created.* |
Warning
* These settings may break the functionality to edit your extension in the Extension Builder! Handle with care!
This is an example of the settings.yaml
file:
overwriteSettings:
Classes:
Controller: merge
Domain:
Model: merge
Repository: merge
Configuration:
#TCA: merge
#TypoScript: keep
Resources:
Private:
Language: merge
#Templates: keep
Documentation: skip
Class building¶
By default, the generated controller, domain object and repository classes inherit from the corresponding Extbase classes. It might be useful to inherit from your own classes - which should then extend the Extbase classes.
The nesting reflects the class hierarchy and is restricted to the classes
Controller
Model\AbstractEntity
Model\AbstractValueObject
Repository
with these options available:
Setting |
Description |
parentClass |
The fully qualified class name of the class to inherit from. |
setDefaultValuesForClassProperties |
By default, the class builder initializes class properties with the default value of their type, for example integer types with 0, string types with "", etc. Set this option to false if class properties should not be initialized, for example if you want to distinguish whether a property is not yet set or has been explicitly set to the default value. |
This is an example of the settings.yaml
file:
classBuilder:
Controller:
parentClass: \Ebt\Blog\Controller\ActionController
Model:
AbstractEntity:
parentClass: \Ebt\Blog\DomainObject\AbstractEntity
AbstractValueObject:
parentClass: \Ebt\Blog\DomainObject\AbstractValueObject
Repository:
parentClass: \Ebt\Blog\Persistence\Repository
setDefaultValuesForClassProperties: true
Miscellaneous¶
There are more options both for the timestamps of the language files and for working with the Extension Builder itself.
Setting |
Description |
staticDateInXliffFiles |
By default, the date attribute in language files is updated every time you save in the Extension Builder. This can be confusing in a version control system if all language files are marked as changed even if no labels have been added or changed. To prevent this effect, you can set a static date – although this is not recommended because the modification date can be useful in the translation context. |
ignoreWarnings |
Some modeling configurations result in warnings. For example, if you configure a show action as a default action, you are warned that you need to define a parameter of a domain object to be shown. However, there may be use cases where you want to ignore the warning and thus prevent it from appearing every time you save. Add the warning code that will be displayed with the warning to the list of this setting. Each code should be listed on its own line and indented by 2 spaces. |
This is an example of the settings.yaml
file:
staticDateInXliffFiles: 2021-11-18T12:37:00Z
ignoreWarnings:
503