The "extension key" is a string that uniquely identifies the extension.The folder in which the extension is located is named by this string.
Rules for the Extension Key¶
The extension key must comply with the following rules:
- It can contain characters a-z, 0-9 and underscore
- No uppercase characters should be used (folder, file and table/field namesremain in lowercase).
-
Furthermore the key must not start with any of these (these are prefixesused for modules):
- tx
- user_
- pages
- tt_
- sys_
- ts_language
- csh_
- The key may not start with a number. Also an underscore at the beginning orthe end is not allowed.
- The length must be between 3 and 30 characters (underscores not included).
- The extension key must still be unique even if underscores are removed,since backend modules that refer to the extension should be named bythe extension key without underscores. (Underscores are allowedto make the extension key easy to read).
The naming conventions of extension keys are automatically validatedwhen they are registered in the repository, so you do not have to worryabout this.
There are two ways to name an extension:
- Project specific extensions (not generally usable or shareable):Select any name you like and prepend it "user_" (which is the onlyallowed use of a key starting with "u"). This prefix denotes that it isa local extension that does not originate from the central TYPO3Extension Repository or is ever intended for sharing. Probably thisis an "adhoc" extension you made for some special occasion.
- General extensions: Register an extension name online at the TYPO3Extension Repository. Your extension name will be validated automaticallyand you are sure to have a unique name will be returned which noone else in the world will use. This makes it very easy to share yourextension later on with everyone else as it ensures that noconflicts will occur with other extensions. But by default, a newextension you make is defined as "private", which means no one else butyou have access to it until you permit it to be public. It's free ofcharge to register an extension name. By definition, all code in theTYPO3 Extension Repository is covered by the GPL license because itinterfaces with TYPO3. You should really consider making generalextensions!
Tip
It is far easier to settle for the rightextension key from the beginning. Changing it later involves a cascadeof name changes to tables, modules, configuration files, etc. Think carefully.
About GPL and extensions¶
Remember that TYPO3 is GPL software and at thesame moment when you extend TYPO3, your extensions are legally covered byGPL. This does not force you to share your extension, but it shouldinspire you to do so and legally you cannot prevent anyone who getshold of your extension code from using it and further develop it. TheTYPO3 Extension API is designed to make sharing of your work easy aswell as using others' work easy. Remember TYPO3 is Open Source Softwareand we rely on each other in the community to develop it further.
Attention
It's also your responsibility to make sure thatall content of your extensions is legally covered by GPL. Thewebmaster of TYPO3.org reserves the right to kick out any extensionwithout notice that is reported to contain non-GPL material.
Security¶
You are responsible for security issues in yourextensions. People may report security issues either directly to youor to the TYPO3 Security Team.In any case, you should get intouch with the Security Team which will validate the security fixes.They will also include information about your (fixed) extension intheir next Security bulletin. If you don't respond to requests fromthe Security Team, your extension will be removed by force from theTYPO3 Extension Repository.
More details on the security team's policy on handling security issuescan be found at https://typo3.org/teams/security/extension-security-policy/.
Registering an extension key¶
Before starting a new extension you should register an extension keyon extensions.typo3.org (unless you plan to make an implementation-specificextension – of course – which does not make sense to share).
Go to extensions.typo3.org, log in with your(pre-created) username/password and navigate to My Extensions in themenu. Click on the Register extension key tab. On that page enterthe extension key you want to register.