[Frage] Extension bei Composer Installation TYPO3-Version: 8.7.15

  • getit getit
    Jedi-Ritter
    0 x
    137 Beiträge
    4 Hilfreiche Beiträge
    15. 06. 2018, 17:14

    Ich habe TYPO3 als VagrantVM über https://github.com/dachande/typo3-bootstrap installiert.

    Jetzt wollte ich eine Extension installieren, die über bei einer "normalen" TYPO3-Installation (manuel das Archiv entdecken, symb.Links erstellen) erstellt wurde.

    Die Extension wird mir jetzt im TYPO3-BE angezeigt.
    Allerdings bekomme ich beim klick auf das Modul meiner Extension die Fehlermeldung:
    [code]Could not analyse class: "KKSoftware\Kkbaybw\Controller\Backend\IndexController" maybe not loaded or no autoloader? Class KKSoftware\Kkbaybw\Controller\Backend\IndexController does not exist (More information)
    [/code]

    Nach etwas nachforschen habe ich rausgefunden, dass bei einer Extension für eine TYPO3-Composer Installation zusätzlich ein Composer.json in der Extension existieren muss.
    Diese habe ich angelegt
    .../typo3conf/ext/kkbaybw/composer.json
    [code]{
    "name": "kksoftware/kkbaybw",
    "type": "typo3-cms-extension",
    "description": "Extension KKBayBW for access to BayBW",
    "license": [
    "GPL-2.0+"
    ],
    "keywords": [
    "typo3",
    "cms",
    "kkbaybw"
    ],
    "version": "1.0.0",
    "require": {
    "typo3/cms-core": ">=7.6.0"
    },
    "suggest": {
    },
    "autoload": {
    "psr-4": {
    "KKSoftware\\Kkbaybw\\": "Classes/"
    }
    }
    }
    [/code]

    Ich habe danach meine Vagant-Installation dann mit
    [code]vagrant provision
    [/code]
    neu provisioniert.
    Auch
    [code]composer dump-autoload -o
    [/code]
    um den Autoload zu aktualisieren habe ich ausgeführt.

    Ich erhalte aber nach wie vor die gleiche Fehlermeldung.
    Hat jemand eine Idee?


  • 1
  • dachande dachande
    T3PO
    0 x
    10 Beiträge
    1 Hilfreiche Beiträge
    25. 06. 2018, 22:24

    Hi,

    da es sich bei der Extension um eine Eigenentwicklung handelt, die nicht über Composer installiert wurde, weiß Composer nicht, wo es nach der composer.json der Extension suchen muss und kennt demnach nicht die PSR-4 Autoloader Definition, die Du dort angegeben hast.

    Das Autoloading muss daher in die composer.json des TYPO3 Projekts und nicht in der composer.json der Extension angegeben werden.

    Nach der Anpassung der composer.json nochmal ein
    [code]composer dumpautoload -o[/code]
    ausführen und ggf. auch in der VM nochmal in /var/www/projektverzeichnis zum Löschen des Caches folgendes aufrufen:
    [code]vendor/bin/typo3cms cache:flush[/code]

    Dann sollte das Aktivieren der Extension funktionieren.

    Wie Du richtig sagtest, sollte zwar jede Extension eine composer.json haben, solange Du die Extension aber nicht im TER oder auf Packagist veröffentlichst, ist sie nicht zwingend notwendig.

    Ich hoffe, das hilft Dir weiter.

  • 1