Skip to main navigation Skip to main content Skip to page footer

Extension Builder – Concept and Architecture

Summary

Extension Builder is a development platform for creating and extending TYPO3 extensions. Its goal is to automate much of the TYPO3 extension development process while allowing developers to implement custom functionality through their own code.

The architecture consists of two main components:

  • Extension Builder for TYPO3: An editor integrated directly into the TYPO3 backend, used to define and configure extensions.
  • Extension Builder for TYPO3 Core: An independent code generator running as a server-side service. It processes configuration data and generates complete TYPO3 extensions, including the required source code and directory structures.

This separation allows the editor and code generator to be developed, maintained, and updated independently.


1. Extension Builder for TYPO3 – The Editor

Extension Builder for TYPO3 provides the user interface and operates as an extension within the TYPO3 backend.

The editor allows developers to define the fundamental properties, structures, and functionality of an extension.

These include:

  • General extension information such as name, vendor, namespace, and description
  • Data models, properties, and relationships
  • Database structures and TCA configurations
  • Controllers, services, and additional PHP classes
  • Backend and frontend functionality
  • Configuration settings and other TYPO3-specific components
  • Custom DeveloperCode

All definitions are stored in structured JSON configuration files, which serve as the interface between the editor and the Core.

2. Extension Builder for TYPO3 Core – The Code Generator

The Extension Builder Core is responsible for generating the actual TYPO3 extension.

It operates as an independent server-side service and processes the configuration data provided by the editor.

Based on these definitions, the Core generates:

  • The required extension directory structure
  • PHP classes and their implementations
  • TYPO3 configuration files
  • Database definitions and TCA configurations
  • Templates and additional resources
  • The source code required to implement the defined functionality

The result is a structured TYPO3 extension that can be installed, tested, and further developed.

3. DeveloperCode – Custom Extensions

A fundamental concept of Extension Builder is the ability to extend or selectively override automatically generated code with custom implementations.

Two approaches are available.

3.1 DeveloperCode Through the Editor

Custom source code can be entered and managed directly within Extension Builder for TYPO3.

This code becomes part of the extension definition and is inserted at designated locations during code generation.

Developers can therefore implement custom functionality and project-specific modifications without giving up the benefits of automated code generation.

3.2 DeveloperCode Through the Local Directory Structure

Alternatively, DeveloperCode can be provided through a local directory structure.

A dedicated directory named DeveloperCode is used for this purpose. Its structure mirrors the files and directories of the extension being generated.

Files and code components stored in this directory are taken into account during the generation process.

Local DeveloperCode files can selectively override or replace code automatically generated by the Core.

This approach allows custom implementations to be developed and maintained independently of the editor.

4. Separation of Generated Code and DeveloperCode

Separating automatically generated source code from custom DeveloperCode is a core principle of the architecture.

The Core provides standardized structures and functionality, while DeveloperCode handles project-specific requirements.

This separation allows extensions to be regenerated without requiring custom functionality to be developed again.

An essential requirement is that the mapping and integration of DeveloperCode are clearly defined during the generation process.

5. Architectural Benefits

The architecture provides several important advantages:

  • Automation: Repetitive development tasks are handled by the Core.
  • Flexibility: Project-specific requirements can be implemented through DeveloperCode.
  • Modularity: The editor and Core can evolve independently.
  • Reusability: Previously defined components and structures can be reused.
  • Maintainability: Separating configuration, generated code, and DeveloperCode simplifies maintenance.
  • Extensibility: New generation capabilities can be added centrally to the Core.

6. Conclusion

Extension Builder combines model-driven software development with the flexibility of custom programming.

Extension Builder for TYPO3 serves as the central development and configuration interface, while Extension Builder for TYPO3 Core handles the technical implementation and code generation.

By integrating DeveloperCode through both the editor and local directory structures, the platform combines standardized code generation with individual customization.

The goal is to make TYPO3 extension development more efficient, transparent, and maintainable over the long term.


7. Providing Information for Other Development Environments

Extension Builder is intended to serve not only as a tool for creating TYPO3 extensions but also as a central foundation for dev