Syllabus

Exam questions are based on TYPO3 CMS 7.6 LTS.

Architecture

As a Certified Developer, you have established knowledge in the architecture, knowing

  • what plugins are and how they are registered and configured
  • what modules are and how they are registered and configured
  • the MVC architecture and its parts
  • how to implement models, views, controllers, and repositories, according to the MVC design pattern
  • what view helpers are and how to implement these
  • the term "aggregate root" and can explain it
  • the intended purposes of files in your extension's root folders (like ext_emconf.php, or ext_tables.php)
  • directory structure of an extension
  • general knowledge about database relations

Controllers
You know

  • how requests work
  • the difference between redirects and forwards
  • how to assign data to the view

Models
You know

  • the base classes your custom models can inherit from
  • the models provided by the core / by extbase (like FrontendUser)
  • how to extend existing core / extbase models and map columns via TypoScript configuration

View Helpers
you know

  • the base classes your custom view helpers can inherit from
  • how to register and process arguments 

Signals and signal slots
You know 

  • what signals and signal slots are
  • how signals connect to slots and how to implement said connection
  • common signal slots present in extbase regarding controllers, models, and repositories

Recommended reading:

Fluid

As a certified developer, you are able to provide fluid templates and fill them with data for integrators to work with. You know

  • the vast majority of core view helpers and can use them properly
  • how namespacing works and how to add a custom namespace to the view for accessing view helpers
  • also know the most important attributes for commonly used view helpers
  • the purpose of layouts, templates, and partials and can use them to create clean templates
  • know simple and nested inline notation
  • what widgets are, how they work, and what the difference is between a common template and a widget template
  • how to provide variables to the view or to a partial, and how to access and utilise it in the view
  • know, in outline, what Cross-Site scripting (XSS) is and how to securely output user-defined input without introducing it

Recommended reading:

Repositories, queries and persistence

Persistence manager
You know 

  • the purpose of the persistence manager
  • what you can to with it, and when you need to manually persist data through it

Repositories
You know 

  • what repositories are, when they are needed, and how to implement them
  • how to implement custom queries inside repositories
  • methods of the query interface to create your own queries
  • how to set query settings both on a per-query base and by overriding default query settings 

Recommended reading:

Security

As a certified developer, you are aware about security to a certain amount. You know

  • how credentials (like passwords) are stored and processed securely
  • how you can stay informed about security issues in the core and in extensions you are using
  • how to process provided GET/POST parameters in a secure way
  • the proper way of reporting security issues found in the core or in published extensions
  • what "directory traversal" is and which countermeasures you can implement
  • the term "cross-site scripting", what it is, and how you can mitigate it

Recommended reading:

Exception handling and debugging

As a certified developer, you are able to handle errors that may occur in your code, and know how to debug your work. You know

  • how to properly debug extbase objects with methods provided by the core
  • what circular dependencies are and how it affects debugging
  • where to have a look if your code throws an error, both in production and development context
  • what error actions are and how to implement them
    Internals (FlexForms, TCA, I18n)

    As a certified developer, you 

    • can add flexforms to your plugins to provide plugin configuration and know how to access these settings
    • know the flexform's "switchable controller actions" and can name its advantages and drawbacks
    • are able to implement translations and know the difference between XML and XLIFF
    • know various column types and configuration options to provide TCA configurations
    • can tell various methods from the extension utility and extension management utility to configure your extension accordingly
    • know how to publish an extension to TER, how versioning works, and how a proper extension key is formed
    • are able to name common files available in an extension's root folder and their purpose
    • can provide a extension-manager compliant ext_tables.sql