1
0
Files
breadcrumb-the-shire/modules/addressbook/module.php
fs c328067aa6 refactor: align addressbook module to MintyPHP\Module\AddressBook namespace
Migrates addressbook service classes from core namespace
(MintyPHP\Service\AddressBook\*) to proper module namespace
(MintyPHP\Module\AddressBook\Service\*), consistent with the
bookmarks module pattern.

Moved to module:
- AddressBookService → modules/addressbook/lib/Module/AddressBook/Service/
- AddressBookServicesFactory → modules/addressbook/lib/Module/AddressBook/Service/
- AddressBookServiceTest → modules/addressbook/tests/Module/AddressBook/Service/
- Pages, templates, CSS, JS all in module directory

All module PHP classes now live under MintyPHP\Module\<Name>\*,
enforced by ModuleStructureContractTest::testModuleClassesUseModuleNamespace.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 22:20:54 +01:00

101 lines
3.0 KiB
PHP

<?php
/**
* Address Book module manifest.
*
* Contributes routes, sidebar slots, search entry, user-edit aside action,
* layout context data, and session lifecycle.
*/
return [
'id' => 'addressbook',
'version' => '1.0.0',
'enabled_by_default' => false,
'load_order' => 10,
'routes' => [
// Keep canonical route stable without forcing a /index target to avoid Router redirect loops.
['path' => 'address-book', 'target' => 'address-book'],
['path' => 'address-book/data', 'target' => 'address-book/data'],
// Legacy aliases for existing bookmarks/links.
['path' => 'addressbook', 'target' => 'address-book'],
['path' => 'adressbook', 'target' => 'address-book'],
],
'public_paths' => [],
'container_registrars' => [
\MintyPHP\Module\AddressBook\AddressBookContainerRegistrar::class,
],
'ui_slots' => [
'aside.tab_panel' => [
[
'key' => 'people',
'label' => 'Address book',
'icon' => 'bi-people',
'href' => 'address-book',
'permission' => 'can_view_address_book',
'panel_template' => __DIR__ . '/templates/aside-people-panel.phtml',
'details_storage' => 'aside-people-tenant',
'details_open_active' => true,
'order' => 110,
],
],
'search.resource_item' => [
[
'key' => 'address-book',
'label' => 'Address book',
'base_url' => 'address-book',
'permission' => 'can_view_address_book',
'order' => 110,
],
],
'user.edit.aside_action' => [
[
'key' => 'address-book-view-user',
'type' => 'link',
'label' => 'View in address book',
'href' => 'address-book/view/{user_uuid}',
'permission' => 'can_view_address_book',
'order' => 110,
],
],
],
'authorization_policies' => [
\MintyPHP\Module\AddressBook\AddressBookAuthorizationPolicy::class,
],
'layout_capabilities' => [
'can_view_address_book' => 'addressbook.view',
],
'search_resources' => [
\MintyPHP\Module\AddressBook\Providers\AddressBookSearchProvider::class,
],
'asset_groups' => [
'address-book' => [
'modules/addressbook/css/pages/address-book-view.css',
],
],
'scheduler_jobs' => [],
'layout_context_providers' => [
\MintyPHP\Module\AddressBook\Providers\AddressBookLayoutProvider::class,
],
'session_providers' => [
\MintyPHP\Module\AddressBook\Providers\AddressBookSessionProvider::class,
],
'permissions' => [
[
'key' => 'address_book.view',
'description' => 'Can view address book',
'active' => true,
'is_system' => true,
],
],
'migrations_path' => 'db/updates',
];