Migration 6.1.5 nach 6.2.2 (The metadata key "files" is not supported)

Ich bekomme beim Ausführen der Befehl:

vendor/bin/oe-console oe:oxideshop-update-component:install-all-modules

Folgende Fehlermeldung:

Module directory of /app/source/modules/sh/shModulname could not be installed due to The metadata key “files” is not supported in metadata version “2.0”

Wie sollte man das fixen?

“files” musst Du umbenennen in “controllers”. composer.json hast erstellt?

aber nicht alle alten “files” sind nun “controllers”.
Core und Model Klassen musst du nicht mehr in der metadata auflisten, du kannst alles über PHP Namespaces erreichen.

Hier sind noch ein paar Infos zu den verschiedenen metadata Versionen:

So sieht mein composer.json aus

{
“name”: “firmenname/oxid/modules-example”,
“description”: “Oxid-Modulecollection for www.example.de”,
“type”: “firmenname-oxid-modulecollection”,
“keywords”: [
“example”,
“oxid”,
“modules”
],
“homepage”: “https://www.example.de”,
“repositories”: {
sat.firmenname.de”: {
“type”: “composer”,
“url”: “http://sat.firmenname.de/
}
},
“prefer-stable”: true,
“require”: {
“firmenname/oxid/plugin-composer-oxid-installer”: “@dev
},
“require-dev”: {
},
“autoload”: {
“psr-4”: {
“firmenname\example\”: “…/…/…/…/source/modules/sv_example”
}
}
}

Und hier mein metadata.php

<?php

/**

  • Metadata version
    */
    $sMetadataVersion = ‘2.0’;

/**

  • Module information
    */
    $aModule = array(
    ‘id’ => ‘namexx’,
    ‘title’ => ‘title’,
    ‘description’ => ‘description’,
    ‘version’ => ‘2.0’,
    ‘author’ => ‘author’,
    ‘email’ => ‘[email protected]’,
    ‘url’ => ‘http://www.Example.de’,
    ‘thumbnail’ => ‘logo.png’,

    ‘extend’ => array(
    \OxidEsales\Eshop\Core\Config::class => \Firmenname\Example\AxConnector\Core\Config::class,
    ),
    ‘blocks’ => array(
    array(
    ‘template’ => ‘shop_main.tpl’,
    ‘block’ => ‘admin_shop_main_leftform’,
    ‘file’ => ‘views/admin/blocks/in_ax_connector_config_block.tpl’
    ),
    array(
    ‘template’ => ‘shop_main.tpl’,
    ‘block’ => ‘admin_shop_main_leftform’,
    ‘file’ => ‘views/admin/blocks/in_ax_connector_yak_config_block.tpl’
    ),
    ),

    ‘controllers’ => array(
    ‘WsdlManager’ => \Firmenname\Example\AxConnector\Library\WsdlManager::class,
    ‘in_ax_connector_example’ => \Firmenname\Example\AxConnector\Controller\Example::class,
    ‘in_ax_connector_process_wsdl’ => \Firmenname\Example\AxConnector\Controller\ProcessWsdl::class,
    ‘Utils’ => \Firmenname\Example\AxConnector\Library\Utils::class,
    ‘CustomerDataToBackend’ => \Firmenname\Example\AxConnector\AxInterface\CustomerDataToBackend::class,
    ‘in_ax_routing_factory’ => \Firmenname\Example\AxConnector\AxInterface\AxRoutingFactory::class,
    ‘in_ax_connector_yak_factory’ => \Firmenname\Example\AxConnector\AxInterface\YakFactory::class,
    ‘in_ax_connector_installer’ => \Firmenname\Example\AxConnector\Installer::class,
    ),

    ‘templates’ => array(
    ‘in_ax_connector_example.tpl’ => ‘sv_Example/AxConnector/views/tpl/in_ax_connector_example.tpl’,
    ‘in_ax_connector_process_wsdl.tpl’ => ‘sv_Example/AxConnector/views/tpl/in_ax_connector_process_wsdl.tpl’,
    ),

    ‘files’ => [
    ‘SoapClient’ => ‘sv_Example/AxConnector/Library/SoapClient.php’,
    ‘SoapClientAX’ => ‘sv_Example/AxConnector/Library/SoapClientAX.php’,
    ‘SoapClientYAK’ => ‘sv_Example/AxConnector/Library/SoapClientYAK.php’,
    ],

    ‘events’ => array(
    ‘onActivate’ => ‘\Firmenname\Example\AxConnector\Installer::onActivate’,
    ‘onDeactivate’ => ‘\Firmenname\Example\AxConnector\Installer::onDeactivate’,
    ),
    );

Das sind ja files und controllers drin. Halte Dich an die Beispiele:

'myvendor_mytestmodule_MyModuleController' => MyVendor\mytestmodule\MyModuleController::class,
'myvendor_mytestmodule_MyOtherModuleController' => MyVendor\mytestmodule\MyOtherModuleController::class,