zikula/generator-bundle
A Zikula bundle that adds code-generation commands for scaffolding modules, controllers, entities, and other boilerplate. It helps PHP developers start extensions faster and keep generated code consistent with Zikula conventions.
Before anything else: this is not a Laravel package. zikula/generator-bundle is a Symfony bundle built for the Zikula Application Framework (a CMS/application platform on top of Symfony). There is no service provider, no facade, no config/generator.php, and it will not install cleanly into a standard Laravel app. Treat it as a reference implementation, not a dependency.
If you are genuinely working inside a Zikula install (Core 2.x/3.x era), the minimal path is:
composer require zikula/generator-bundle in the Zikula project root (not a Laravel project).app/AppKernel.php (Symfony 2/3 style) or config/bundles.php depending on the Zikula core version.bin/console zikula:generate:module (the exact command name varies by version — run bin/console list zikula to confirm).modules/<Vendor>/<ModuleName>/.Where to look first: the generated module's composer.json, <ModuleName>Module.php (the bundle class), and Resources/config/routing.yml. Those three files tell you how the scaffold wires itself into Zikula's kernel, autoloading, and routing.
First real use case: scaffolding a fresh Zikula module with the correct directory layout, PSR-4 autoload entry, and boilerplate controller/entity/template so you don't hand-copy an existing module.
Skeleton-then-edit. The generator's value is the file layout, not ongoing runtime behavior. The typical workflow is: generate once, commit the output, then delete the dependency or leave it in require-dev. There is no reason to keep the generator in production dependencies.
Template source of truth. If you maintain multiple Zikula modules, the practical pattern is to generate one "golden" module, clean it up to your house style (coding standards, CI config, editorconfig, base controller), and then copy that for future modules rather than re-running the generator. The archived generator emits dated boilerplate that you will immediately rewrite.
Generated file inventory. Expect the generator to produce:
<Vendor>/<Module>/<Module>Module.php — the bundle classcomposer.json with a PSR-4 mapping for the module namespaceController/ with a default controller extending Zikula's AbstractControllerResources/config/routing.yml, Resources/views/, Resources/locale/Entity/ and Doctrine wiring stubsApi/ stubs for Zikula's module API patternIntegration into a Zikula app. After generation you must (a) run composer dump-autoload, (b) confirm the module is registered/activated in the Zikula admin UI or modules table, and (c) clear the cache (bin/console cache:clear). Zikula's module activation step is separate from Symfony bundle registration — a generated bundle that is registered but not "activated" as a Zikula module will not expose routes.
Laravel-adjacent takeaway. If you're evaluating this while building Laravel tooling, the transferable ideas are the prompt-driven vendor/namespace derivation and the per-artifact templates. For actual Laravel scaffolding, laravel new, php artisan make:*, and packages like nwidart/laravel-modules cover the same ground with a maintained ecosystem.
symfony/* and zikula/core version pins.bin/console list and read --help rather than trusting tutorials.Vendor\Module naming convention (studly-case, no digits-first). A name that "looks fine" often fails validation, or produces a PSR-4 mapping that doesn't match your composer.json autoload block.composer dump-autoload then bin/console cache:clear fixes most "class not found" and "route not found" symptoms.mkdir/touch, not real design work.How can I help you explore Laravel packages today?