Hi,
Testing after updating to Laravel 7, running into a few issues, mainly this one has me stumped:
$ php artisan module:make TestModule;
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/module.json
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Http/Routes/web.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Http/Routes/api.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Http/Routes/admin.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Providers/AppServiceProvider.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Providers/EventServiceProvider.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Providers/RouteServiceProvider.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Resources/views/index.blade.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Resources/views/admin/index.blade.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Resources/views/layouts/frontend.blade.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Resources/views/layouts/admin.blade.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Listeners/TestEventListener.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Http/Controllers/Frontend/IndexController.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Http/Controllers/Api/ApiController.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Http/Controllers/Admin/AdminController.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/Config/config.php
Created : /Users/nabeelshahzad/dev/nabeelio/phpvms/modules/TestModule/composer.json
[2020-05-22T18:39:50.366694+00:00] dev.ERROR: Module [TestModule] does not exist! {"exception":"[object] (Nwidart\\Modules\\Exceptions\\ModuleNotFoundException(code: 0): Module [TestModule] does not exist! at /Users/nabeelshahzad/dev/nabeelio/phpvms/vendor/nwidart/laravel-modules/src/FileRepository.php:396)"} []
Nwidart\Modules\Exceptions\ModuleNotFoundException
Module [TestModule] does not exist!
at vendor/nwidart/laravel-modules/src/FileRepository.php:396
392| if ($module !== null) {
393| return $module;
394| }
395|
> 396| throw new ModuleNotFoundException("Module [{$name}] does not exist!");
397| }
398|
399| /**
400| * Get all modules as laravel collection instance.
+31 vendor frames
32 artisan:35
Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
It looks like all the files I'm expecting are generated:
modules/TestModule
├── Config
│ └── config.php
├── Console
├── Database
│ ├── factories
│ ├── migrations
│ └── seeds
├── Http
│ ├── Controllers
│ │ ├── Admin
│ │ │ └── AdminController.php
│ │ ├── Api
│ │ │ └── ApiController.php
│ │ └── Frontend
│ │ └── IndexController.php
│ ├── Middleware
│ ├── Requests
│ └── Routes
│ ├── admin.php
│ ├── api.php
│ └── web.php
├── Listeners
│ └── TestEventListener.php
├── Models
├── Providers
│ ├── AppServiceProvider.php
│ ├── EventServiceProvider.php
│ └── RouteServiceProvider.php
├── Resources
│ ├── assets
│ ├── lang
│ └── views
│ ├── admin
│ │ └── index.blade.php
│ ├── index.blade.php
│ └── layouts
│ ├── admin.blade.php
│ └── frontend.blade.php
├── composer.json
├── module.json
└── tests
This is what my config looks like; I'm generating some extra files and scaffolding:
<?php
use Nwidart\Modules\Activators\FileActivator;
return [
'namespace' => 'Modules',
'stubs' => [
'enabled' => true,
'path' => resource_path().'/stubs/modules',
'files' => [
'routes' => 'Http/Routes/web.php',
'routes-api' => 'Http/Routes/api.php',
'routes-admin' => 'Http/Routes/admin.php',
'app-provider' => 'Providers/AppServiceProvider.php',
'event-service-provider' => 'Providers/EventServiceProvider.php',
'route-provider' => 'Providers/RouteServiceProvider.php',
'views/index' => 'Resources/views/index.blade.php',
'views/index-admin' => 'Resources/views/admin/index.blade.php',
'views/frontend' => 'Resources/views/layouts/frontend.blade.php',
'views/admin' => 'Resources/views/layouts/admin.blade.php',
'listener-test' => 'Listeners/TestEventListener.php',
'controller' => 'Http/Controllers/Frontend/IndexController.php',
'controller-api' => 'Http/Controllers/Api/ApiController.php',
'controller-admin' => 'Http/Controllers/Admin/AdminController.php',
'config' => 'Config/config.php',
'composer' => 'composer.json',
],
'replacements' => [
'start' => ['LOWER_NAME', 'ROUTES_LOCATION'],
'routes' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE'],
'routes-api' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE'],
'json' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE'],
'app-provider' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE'],
'event-service-provider' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE', 'CLASS_NAMESPACE'],
'route-provider' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE', 'CLASS_NAMESPACE'],
'listener-test' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE'],
'views/index' => ['LOWER_NAME'],
'views/index-admin' => ['LOWER_NAME', 'STUDLY_NAME'],
'views/frontend' => ['STUDLY_NAME'],
'views/admin' => ['STUDLY_NAME'],
'controller' => ['MODULE_NAMESPACE', 'STUDLY_NAME', 'CLASS_NAMESPACE', 'LOWER_NAME'],
'controller-admin' => ['MODULE_NAMESPACE', 'STUDLY_NAME', 'CLASS_NAMESPACE', 'LOWER_NAME'],
'controller-api' => ['MODULE_NAMESPACE', 'STUDLY_NAME', 'CLASS_NAMESPACE', 'LOWER_NAME'],
'config' => ['STUDLY_NAME'],
'composer' => [
'LOWER_NAME',
'STUDLY_NAME',
'VENDOR',
'AUTHOR_NAME',
'AUTHOR_EMAIL',
'MODULE_NAMESPACE',
],
],
'gitkeep' => false,
],
'paths' => [
'modules' => base_path('modules'),
'assets' => public_path('modules'),
'migration' => base_path('database/migrations'),
'generator' => [
'config' => ['path' => 'Config', 'generate' => true],
'command' => ['path' => 'Console', 'generate' => true],
'migration' => ['path' => 'Database/migrations', 'generate' => true],
'seeds' => ['path' => 'Database/seeds', 'generate' => true],
'factory' => ['path' => 'Database/factories', 'generate' => true],
'model' => ['path' => 'Models', 'generate' => true],
'controller' => ['path' => 'Http/Controllers', 'generate' => true],
'controller-admin' => ['path' => 'Http/Controllers/Admin', 'generate' => true],
'controller-api' => ['path' => 'Http/Controllers/Api', 'generate' => true],
'filter' => ['path' => 'Http/Middleware', 'generate' => true],
'request' => ['path' => 'Http/Requests', 'generate' => true],
'routes' => ['path' => 'Http/Routes', 'generate' => true],
'provider' => ['path' => 'Providers', 'generate' => true],
'assets' => ['path' => 'Resources/assets', 'generate' => true],
'lang' => ['path' => 'Resources/lang', 'generate' => true],
'views' => ['path' => 'Resources/views', 'generate' => true],
'test' => ['path' => 'tests', 'generate' => true],
'repository' => ['path' => 'Repositories', 'generate' => false],
'event' => ['path' => 'Events', 'generate' => false],
'listener' => ['path' => 'Listeners', 'generate' => true],
'policies' => ['path' => 'Policies', 'generate' => false],
'rules' => ['path' => 'Rules', 'generate' => false],
'jobs' => ['path' => 'Jobs', 'generate' => false],
'emails' => ['path' => 'Resources/Emails', 'generate' => false],
'notifications' => ['path' => 'Notifications', 'generate' => false],
'resource' => ['path' => 'Models/Transformers', 'generate' => false],
],
],
'scan' => [
'enabled' => false,
'paths' => [
base_path('vendor/*/*'),
base_path('modules/*'),
],
],
'composer' => [
'vendor' => '',
'author' => [
'name' => '',
'email' => '',
],
],
'cache' => [
'enabled' => true,
'key' => 'phpvms-modules',
'lifetime' => 10,
],
'register' => [
'translations' => true,
],
'activator' => 'file',
'activators' => [
'file' => [
'class' => FileActivator::class,
'statuses-file' => config_path('modules_statuses.json'),
'cache-key' => 'activator.installed',
'cache-lifetime' => 604800,
],
],
];
I'm trying to debug with some people who are running into issues with generating modules; it looks like the service provider (TestModuleServiceProvider
in this case wasn't generated). And it looks also like the caches (config, routes) didn't get cleared (I can't remember if this was supposed to be the case). It could also be that I'm missing some configuration or something in the upgrade to Laravel 7, but I haven't seen anything specific). Thanks!