2

I created a module with the pluginfactory generator. The module is used for generating a zip file with all the files belonging to a project.

In the composer.json file, I added the following:

"autoload": {
    "psr-4": {
      "zipassetscraft3module\\": "modules/zipassetscraft3module"
    }
  },

in the config/app.php I added:

'modules' => [
      'zip-assets-craft-3-module' => \modules\zipassetscraft3module\ZipAssetsCraft3Module::class,
    ],

In the file controllers/DefaultController.php I added a function called actionDownload() as well as a download() function in the file services/ZipAssetsCraft3ModuleService.php

On the website I have a form with the following url as action: https://default.com/actions/zip-assets-craft-3-module/default/download

When I submit the form, I get an error:

Invalid Configuration – yii\base\InvalidConfigException Failed to instantiate component or class "modules\zipassetscraft3module\ZipAssetsCraft3Module".

Caused by: ReflectionException Class modules\zipassetscraft3module\ZipAssetsCraft3Module does not exist

I have dumped the composer autoload, but I don't know why it's not working. Any ideas what I need to change to get this working?

This is the file structure of the module: enter image description here

So the error message says, there is a class missing, in which file is this class looked for?

9
  • Try to remove \modules from \modules\zipassetscraft3module\ZipAssetsCraft3Module::class in your config/app.php
    – Oli
    May 28, 2019 at 14:05
  • You don't mention bootstrapping your module; that might be what you're missing. You should have a bootstrap array in config/app.php, add the module "key" you created above to the bootstrap array: 'bootstrap' => ['zip-assets-craft-3-module'],...
    – Jalen Davenport
    May 29, 2019 at 21:03
  • @Oli that doesn't change anything unfortunately
    – obs
    Jun 3, 2019 at 10:28
  • @JalenDavenport when I do this, the error message appears immediately and not only when I call the action. I updated my question and added a screenshot with the file structure
    – obs
    Jun 3, 2019 at 10:32
  • 1
    @obs ah so you're referencing a Class by the name of ReflectionException in your ZipAssetsCraft3Module.php file that PHP can't find. Any chance you could post the contents of that file or at least the snippet that contains ReflectionException?
    – Jalen Davenport
    Jun 3, 2019 at 13:57

1 Answer 1

1

I came across the same issue. So how i solved it is to modify the modules array like this and now the module is loading:

return [
    'modules' => [
        'zip-assets-craft-3-module' => [
            'class' => \modules\zipassetscraft3module\ZipAssetsCraft3Module::class,
        ],
    ],
    'bootstrap' => ['zip-assets-craft-3-module'],
];

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.