modufolio / panel-module
The appkit module for modufolio/panel: wires the panel's controllers and fills its host contracts from the kernel.
Requires
- php: >=8.4
- modufolio/appkit: ^0.22
- modufolio/panel: ^0.10
- psr/clock: ^1.0
- symfony/routing: ^7.0
Requires (Dev)
- doctrine/orm: ^3.0
- phpstan/phpstan: ^2.2
- phpstan/phpstan-phpunit: ^2.0
- phpunit/phpunit: ^12.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is not auto-updated.
Last update: 2026-09-17 21:35:20 UTC
README
The appkit module for modufolio/panel. The panel depends on no framework; this package is where appkit answers what it asks of a host.
// config/modules.php return [ \Modufolio\Appkit\Inertia\InertiaModule::class => ['version_file' => __DIR__ . '/sri.php'], \Modufolio\PanelModule\PanelModule::class => ['media_entity' => \App\Entity\Media::class], ];
The module wires the panel's ResourceController and PanelController from
the kernel's container, and declares:
Contracts\CurrentUserInterface— the signed-in user off the kernel's token storage. The host's user class addsModufolio\Panel\Contracts\UserInterface; itsgetRoles()already satisfies it.Contracts\PageRendererInterface— a panel page as an appkit Inertia value, which the kernel finishes through the host'sInertiaModule.FormResolvernaming the configured media entity,GlobalSearchover the mounted resources, aNullChangePublisher, a no-formats export provider and no permission report — defaults the host overrides by declaring the same id inconfig/services.php.
Routing\CachedResourceMenu::fromRouter() reads the generated menu entries
through appkit's route-data cache, for a host navigation that would otherwise
load every route from source on each request.
Configuration: media_entity, the entity class of the media library, so a
to-one pointing at it is guessed as an image field; null for no library.