Search by

modufolio / panel-module

modufolio

The appkit module for modufolio/panel: wires the panel's controllers and fills its host contracts from the kernel.

Package info

github.com/modufolio/panel-module

pkg:composer/modufolio/panel-module

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1.0 2026-09-16 23:21 UTC

This package is not auto-updated.

Last update: 2026-09-17 21:35:20 UTC


README

CI PHPStan Packagist License: MIT

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 adds Modufolio\Panel\Contracts\UserInterface; its getRoles() already satisfies it.
  • Contracts\PageRendererInterface — a panel page as an appkit Inertia value, which the kernel finishes through the host's InertiaModule.
  • FormResolver naming the configured media entity, GlobalSearch over the mounted resources, a NullChangePublisher, a no-formats export provider and no permission report — defaults the host overrides by declaring the same id in config/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.