TYPO3 CMS Certified Developer (TCCD)
A TYPO3 CMS Certified Developer has to have experience collected through projects, should know the architecture, design patterns, best practices, and a fair share of internals both TYPO3 CMS and the extension framework. TYPO3 CMS Certified Developer can implement an extension completely in a state-of-the-art way. They write clean code by following the TYPO3 Coding Guidelines (CGL), and they are well versed in a wide range of topics, from the initial setup of an extension up to the point of publishing it in the TYPO3 Extension Repository (TER).
The TYPO3 Certification Team is committed to the development of a global standard for TYPO3 certifications. The certification program verifies the knowledge of the certified and the organizations employing them. The exams consist of multiple steps, each requiring different expertise.
A Collaboration between the Certification and the Education Team provides learning materials to support the certification candidates.
- Digital Assets Management (FAL)
Know about transparent inclusion of external file sources into TYPO3.
- PSR-7: Request/Response
This skill covers the PHP standard for HTTP request/response objects.
- Using Query Restrictions
How to restrict database queries.
- Using the QueryBuilder
How to write queries in TYPO3.
- Doctrine DBAL
Basic knowledge about the Doctrine component for transparently accessing several DBMS in PHP.
- PSR-3: Logger Interface standard
Knowledge about the PSR-3 logging standard for PHP.
- Flexform Configuration Data Structure
How to create and configure a data structure for my plugin’s configuration.
- Flexform Concepts
Basics about the concept of Flexforms and how it relates to the TCA.
- Database Management System (DBMS)
Knowledge about DBMS.
- Logging API
Knowledge about the logging API provided by TYPO3.
- Accessing Flexform Data
Using data provided by Flexforms, in plugin CEs and custom records.
- TYPO3 Debugging Utilities
Knowledge about debugging utilities provided by TYPO3.
- Tracing Errors in Logs
Knowledge about log sources and how to utilize them in order to resolve errors.
- Knowledge about Environment Error Logs
Ability to locate logs provided by system components.
- Debugging in PHP
Basic knowledge about error tracing possibilities present in PHP.
- Extending site configurations
This skill covers custom extensions to the TYPO3 Core Site configuration module.
- Route Enhancers
This skill covers route enhancers which are used to amend the URL routing provided by the TYPO3 core.
- Request processing with middlewares
This skill covers the usage of PSR-15 middlewares in TYPO3 - both for frontend and backend request processing.
- PSR-15: Middlewares
This skill covers the PHP standard on middlewares.
- The Registry API
This skill covers the registry API, provided by the TYPO3 Core to store instance-specific data.
This skill provides knowledge on the Environment class in the TYPO3 Core, which is used to abstract away system-specific details to create code that runs in multiple environments.
- MetaTag API
This skill covers the MetaTag API, which can be used to manipulate the meta tags in the <head> section of the generated HTML page.
- PageTitle API
This skill covers the PageTitle API, which can be used to flexibly modify the title of the generated page, e.g. in the single view of a plugin.
- Contexts & Aspects
This skill covers two new concepts in TYPO3 v9: the request context and aspects that can be used to enrich this context, e.g. with localization information.
This skill covers the PageRenderer, a TYPO3 Core component that is responsible for collecting and generating information about various parts of the page and handling the final output of a page.
- Writing and using own Symfony Expressions
This skill covers the Symfony Expression syntax used in e.g. TypoScript conditions and ways to extend that functionality with custom code.
This skill handles basic knowledge on how the DataHandler, a TYPO3 Core component for processing user data, works and how it can be leveraged in own extensions.
- Error handling/Exception handling
This skill provides knowledge on TYPO3-specific ways of handling errors during program execution and finding information about any errors that occurred.
- Mail API
This skill covers the TYPO3 Mail API, which internally uses Symfony Mailer and MIME for email creation and sending.
- Flash Messages
This skill covers flash messages, a mechanism used to communicate results of an action to the user.
- Extension scanner
This skill covers the Extension Scanner, which extension authors can use to detect possible problems in their extensions while upgrading them to a newer TYPO3 version.
- Symfony CLI
This skill covers the creation of command-line commands for TYPO3, based on the Symfony Console component.
- The USER/USER_INT TypoScript objects
This skill covers the USER and USER_INT TypoScript objects, which are used to integrate custom code in the TYPO3 frontend rendering process.
- The Caching Framework
This skill covers the Core's caching framework. It shows how to use existings caches and register custom caches and the types of cache frontends and backends. Additional topics are expiration and tagging of cache entries and flushing of caches.
- Data structures in TYPO3 core
Classes for data structures, e.g., the BitSet and Enumeration class, and their usage.
- TYPO3 Version API
The TYPO3 Version information API.
- AssetCollector class and view helpers
The AssetCollector class, its methods and the corresponding view helpers.
- PSR-11 Symfony Dependency Management/Injection
This skill covers different types of dependency injection in TYPO3 and the configuration of
- Custom Route Enhancers
This skill covers the creation of custom Route Enhancers for the TYPO3 frontend routing.
- Building Custom Dashboard Widgets
This skill covers creating custom widgets for the TYPO3 Backend Dashboard and configuring existing widget groups.
- Rich Text Editor API
Modifying CKeditor’s configuration programmatically: You can modify existing or add complete new configurations
- Native List Pagination
The new list pagination introduced in TYPO3 V10.
- Backend Notifications
The focus of this skill is to know how to utilize notifications for backend users.
- Notification Actions
This skill refers to a new feature introduced in v10 which allows to define actions for notifications.
- PSR-17: HTTP Message Factories
This skill covers the PHP standard for HTTP message factories and the differences to the earlier HTTP request/response standard.
- PSR-18: HTTP Client
This skill covers the PHP HTTP client standard.
- Debugging PSR-14 Event Handling
This skill covers debugging the registration, dispatching and handling of events.
- Using existing PSR-14 events
This skill covers the implementation and usage of events in the TYPO3 Core.
- Providing own events
The focus of this skill is providing custom events within the TYPO3 PSR-14 implementation.
- Extension: Lowlevel
The lowlevel extension allows examining the current TYPO3 configuration.
- Database Record Translations
This skill covers the translation configuration of database records via TCA.
- Implementing Custom Validators
How to provide custom validation in Extbase.
- Error Actions
How to handle validation errors.
- Validation in Extbase
What concepts exist to validate controller action input parameters.
- Extbase Persistence
How Extbase interacts with the permanent storage.
- Implementing ViewHelpers
Provides the foundations for extending a view with custom PHP code.
- Extbase PersistenceManager
The built-in PersistenceManager.
- Extbase Request/Response
How request/response handling is done in Extbase.
- Customizing Extbase Repositories
How to implement custom persistence functionality in Extbase.
- Standard Extbase Repository
Knowing the default repository class.
- Extending Base Models
This skill covers the use cases and different ways to extend the built-in models of Extbase.
- Extbase View
Explaining the view part of MVC in Extbase.
- Implementing MVC in TYPO3
Introducing the concept of MVC in Extbase: base classes for models, controllers, repositories; the concept of services and utilities and when to use them.
This skill covers controllers, the "C" in the MVC pattern.
- Extbase Annotations
This skill is about PHPDoc annotations particular to Extbase.
- Registering Backend Modules
This skill covers the registration of a backend module to make it available to users.
- Registering Frontend Plugins
This skill covers the registration of a frontend plugin to make it available to users
- Extbase JSON View
The built-in JSON View in Extbase.
The JSON format and its usages in web development.
- ViewHelper: Debug
Utilising output to access Fluid variables.
- ViewHelper: Image
Using the Fluid ViewHelper f:image().
- ViewHelper: Widgets
Learn the most important f:widget.* ViewHelpers.
- ViewHelper: Format
Using Fluid Format ViewHelpers.
- ViewHelper: Form
The TYPO3 CMS form ViewHelper for Fluid.
- ViewHelper: Link, Uri
Using the Fluid ViewHelpers f:link.* and f:uri.*.
- ViewHelper: Comment
Including comments in Fluid templates.
- ViewHelper: If/Else
Creating if/else statements within Fluid templates.
- ViewHelper: For-Loop
Iterating through a list with the for ViewHelper.
- Templates, Layouts, Partials
Fluid Templates, Layouts, Partials - their interaction and properties.
- ViewHelper: Render
Using f:render to render sections and partials as well as passing arguments.
- Importing ViewHelpers
Using third party ViewHelpers in your Fluid templates.
Getting to know what a ViewHelper is.
- Outputting Variables
Basic usage of variables inside Fluid templates and knowledge about escaping.
- Extbase Fluid View
The Fluid-based HTML view of Extbase.
- Using the Fluid View
Knowing and understanding the different parts of a Fluid template view.
- What is Fluid?
Definition of Fluid and its possible use with regards to the Model View Controller pattern.
- User Input in Views
Knowledge about securely outputting values gained through user input.
- User Input in DB Queries
Knowledge about securely processing user input for database queries.
- User Input in PHP Code
Knowledge about securely processing user input in PHP code.
- Handling User Input
Knowledge about possible ways to retrieve and process user input.
- Web Vulnerability Types
Knowledge about possible vulnerabilities in web development.
- Prepared Statements
This skill covers the concept of and reasoning behind Prepared Statements in relational databases.
- Table Configuration Array (TCA)
Configuring database tables for usage in the backend and frontend.
- Database Schema Definition
This skill handles definition of own database tables and fields for an extension for automatic management by the TYPO3 Core.
- What is SQL?
Knowledge about how to access and manipulate data in DBMS.
- Extension File and Folder Structure
Knowing the file structure of an extension and where to place files by convention and due to technical requirements.
- PSR autoloading standards
The different PHP autoloading standards (PSR-4, class maps), how they map PHP classes to files and folders, and how the PSR-4 autoloading is configured.
- Update wizards
This skill covers the implementation of update wizards, which can be used by integrators to update existing extension data and configuration after upgrading the extension.
- AJAX handling in the TYPO3 Backend
Basic knowledge about how AJAX actions are handled in the TYPO3 Backend and how custom code can be added to be called via AJAX.
- Composer for TYPO3 Extensions
This skill introduces usage of Composer for extensions and their integration into TYPO3 projects.
- Creating Scheduler Tasks
How to build Scheduler tasks for automating recurring tasks.
- Making Extensions localizable
How to make extensions translatable and localizable
- Coding Standards in TYPO3
Knowing how to write code conforming to the coding standards used by the TYPO3 project.
- Docblocks in PHP
The syntax and general purpose of documentation blocks, and the most often used annotations.
- PSR Standards
Knowing the PSR programming standards.
- What is a Templating Engine?
Introduction to the basic concept of a templating engine/processor.
Ability to develop and execute PHP scripts.
- Domain-Driven Design (DDD)
Understanding the concept of DDD.
What is a view in MVC context.
What is a model in MVC context.
- What is MVC?
The MVC pattern, what it can be used for, and common implementations.
- Dependency Injection
Knowledge about dependency injection in general.
- PSR-14: Event Dispatching
This skill covers the basics of the PHP standard on Event dispatching.
This skill introduces AbstractPlugin, the standard way of implementing extensions before Extbase.
Composer basics and its usage for PHP projects.
- Git basics
Basics and most important commands for working with the version-control system Git.