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>
This commit is contained in:
@@ -14,9 +14,7 @@ use FilesystemIterator;
|
||||
* Intentionally allowed in Core (not flagged):
|
||||
* - PermissionService::ADDRESS_BOOK_VIEW (general people-visibility gate)
|
||||
* - OperationsAuthorizationPolicy / UiCapabilityMap / UserAuthorizationPolicy (authorization)
|
||||
* - AddressBookService / AddressBookServicesFactory (business logic, V1 shared-db)
|
||||
* - pages/address-book/* (page files, not hardcoded integrations)
|
||||
* - config/assets.php (asset pipeline not yet modular)
|
||||
* - modules/addressbook/* (module-owned runtime, pages/assets/providers)
|
||||
* - i18n translation files
|
||||
* - Module directory (lib/Module/, modules/)
|
||||
* - Test files
|
||||
@@ -90,10 +88,7 @@ final class NoAddressBookHardcodingTest extends TestCase
|
||||
}
|
||||
|
||||
/**
|
||||
* Aside panel template must not have hardcoded People panel.
|
||||
*
|
||||
* Note: The search panel legitimately contains data-search-key="address-book"
|
||||
* for the global search results — that is NOT a hardcoded People panel.
|
||||
* Aside panel template must not have hardcoded People panel/search entries.
|
||||
*/
|
||||
public function testAsideHasNoHardcodedPeoplePanel(): void
|
||||
{
|
||||
@@ -116,6 +111,20 @@ final class NoAddressBookHardcodingTest extends TestCase
|
||||
$content,
|
||||
'Aside still defines $peopleGroups as a standalone variable'
|
||||
);
|
||||
self::assertStringNotContainsString(
|
||||
'data-search-key="address-book"',
|
||||
$content,
|
||||
'Aside still has static address-book search item markup'
|
||||
);
|
||||
}
|
||||
|
||||
public function testCoreNoLongerContainsAddressBookServiceDirectory(): void
|
||||
{
|
||||
$coreServiceDir = dirname(__DIR__, 2) . '/lib/Service/AddressBook';
|
||||
self::assertDirectoryDoesNotExist(
|
||||
$coreServiceDir,
|
||||
'Addressbook service classes should live in modules/addressbook/lib, not in Core lib/Service'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user