Search code examples
composer-phptypo3typoscripttypo3-extensions

TYPO3 Extension install with composer - but not detected


I'm launching a new website with TYPO3 13.1, using WAMP. I need to create a custom local extension in order to store all my custom controllers, models, viewhelpers, files etc...

  • I am in "composer mode"
  • I am developing my extension from scratch to avoid useless files/datas
  • I added my extension into the TYPO3 root composer.json by adding a custom repository
  • I made a composer update

Perfect! My extension has been installed -> I can see the package by doing a composer show.
Problem: TYPO3 doesn't recognize it:

  • My extension is not visible when I do php vendor/bin/typo3 extension:setup
  • It is not displayed inside the extension list (backend Admin Tools > Extensions)

How do you make it visible for Typo3 ? It should be automatic but it's not. By the way I did install another extension (georgringer/news) the same way and it works : I believe that's maybe because I am missing a specific file? Maybe in the /Configuration/ folder?

This is my current page tree - I'm building it step by step and I'm only beginning:

/Classes/
/Resources/
composer.json
ext_emconf.php

Below is the composer.json of my extension:

{
   "name": "******/******",
   "version": "1.0.0",
   "description": "******************************",
   "type": "typo3-cms-extension",
   "authors": [
       {
           "name": "******",
           "email": "******",
           "homepage": "******",
           "role": "maintainer"
       }
   ],
   "homepage": "******",
   "support": {
   },
   "require": {
   },
   "prefer-stable": true,
   "autoload": {
       "psr-4": {
           "******\\": "Classes/"
       }
   },
   "extra": {
       "typo3/cms": {
           "extension-key": "******"
       }
   }
} 

Asterisks "******" are hidding personal datas, of course it's not inside the code :)


Solution

  • Taking from your post, you did:

    • added a (local path) repository to composer.json
    • executed composer update

    That's pretty fine, but if that was all you missed to add your extension by requiring it (you only made composer aware where to find it, not to install/use it).

    To add it you need to do:

    composer require vendor/package-name
    

    which would install it and TYPO3 can find it (because it is installed). Then use bin/typo3 extension:setup to ensure that required tables and columns are created.