Improve EXT:extension_builder 2022

Application by
Alexander Nitsche

What is your idea about?
In 2021, the EXT:extension_builder as a standard tool for creating Extbase-based TYPO3 extensions was successfully made compatible with TYPO3 v10 and v11 - in time for the 11 LTS release. Furthermore, it was provided with a completely revised documentation in combination with automated screenshots and adapted for the complete ELTS range from TYPO3 v7 to v11. With this 2022 budget we want to continue the rework and this time focus on working off the 48 piled up issues of the project and create a bug free, well tested and clean codebase, which in turn should be adapted and published for the complete ELTS series and generate finest extension skeletons.

This is the current list of issues:

  • renderType in m:n relation always empty in generated TCA
  • Only update timestamp in XLF-files if modified
  • m:n tablename too long; enable custom tablename
  • Keep new line after “case” statement
  • Refactor DB Updates handler
  • [BUG] Enable categorization - Missing categories in frontend
  • Controller actions for multiple plugins/modules
  • Keep manually changed @var Annotation Classname
  • Allow to set Cascading Deleting for field
  • Adjust generated foreign_table_where for multilanguage relations
  • Allow existending existing classes with EXT:extender
  • Extending a class which is created by extension builder is only possible after installing the extension
  • Import namespaces in Model, Controller, Repository
  • Add property annotations instead of php doc comments
  • renderType selectSingle for 1:1 relation
  • Make property type Select list configurable
  • Edit properties in modal window
  • Remove introduction screen and move the info text to a help button
  • Update wireit library to version 0.7.0 which is compatible with yui 2
  • Refactor creating new controllers, actions and plugins
  • Add more stuff from tea extension into generated code
  • Allow merge-mode for Configuration/Extbase/Persistence/Classes.php
  • Documentation of security relevant information
  • configurePlugin
  • In Overrides tt_content the icon as fourth parameter is missing
  • Actions with redirect not PSR-7 compatible
  • TCA foreign_types should not be used
  • Remaining to-dos of the extension documentation
  • Make backend module label mlang_labels_tablabel settable
  • Add missing labels of plugin name and description
  • Use same m:n database table for m:n TCA relations
  • Minimal generated extension contains unneeded files and folders
  • Make output directory of Extension Builder configurable
  • Display the output directory and backup directory in the Extension Builder
  • Add specific css class to backend modules DOM element
  • Align description field type of backend modules and frontend plugins UI
  • “Show advanced options.” button has wrong title attribute
  • Add possibilty to define extension composer dependencies, not just extension keys
  • Transfer documentation changes into backend module context-sensitive help
  • Incorrect TCA with extension.supportLocalization=false
  • Renaming of model name is not possible.
  • Renaming Model never adjusts controller completely
  • example code in actions
  • formatting in TCA files
  • file definitions in TCA include outdated notation and paths
  • image viewHelper is used by default with originalResource.publicUrl
  • Add basic local testing setup to generated extension
  • locallang.xlf merge does not work
  • Improve UI handling of lots of models and properties
  • Improve UI handling of controller actions and plugins

What is the potential impact of your idea?
Every TYPO3 developer should have a Swiss Army Knife at hand to create new TYPO3 extensions based on Extbase and Fluid. The Extension Builder serves both as a learning tool, providing insights into TYPO3 extension development best practices, and as a kickstarter for creating extensions for production. Above all, a well-functioning Extension Builder grows the TYPO3 ecosystem and lowers the TYPO3 learning curve.

Who can / should implement your idea?
I will take care myself

Approximate Funds needed
€10,000 - €25,000

2 Likes

Hello Alexander,

thank you for your application. The goal of the TYPO3 Association is to reduce the amount of money spend on worktime for code. Instead the money should be used to enable people to be part of teams or to enlarge the community. Can you please explain why -in your special case- money for code should be spend?

We want to attract more developers and grow the community by having an up-to-date extension builder that will make the developer’s learning curve easier to create new extensions, since he doesn’t need to read all the docs and can start creating new extensions much faster. Mistakes are avoided because the generated files work out of the box.

Not relevant for the budget, but I don’t agree on this. The extension_builder should support developers by kickstarting new extensions without having to copy&paste boilerplate code. Stating that devs do no longer need to study and understand extbase internals sounds wrong to me. I think developers should know the purpose of every file they add to their code base, especially for security reasons.

Well, I don’t mean they can ignore the whole documentation but studying the TCA or table definition for example is a nightmare as you don’t have autocomplete of all available fields there and I always need to look up the TCA docs when I want to change something. Basically everything under the Configuration folder and all files starting with “ext_” :smile: