All notable changes to the Maatify\SharedCommon module will be documented in this file.
The format is based on Keep a Changelog and this project follows Semantic Versioning (SemVer).
-
Permission Mapping Contracts: Added neutral permission mapping contracts under
Maatify\SharedCommon\Contracts\Securityto allow independent modules to expose their route-to-permission requirements without depending onAdminKernel. -
Permission Requirement Definition Value Object: Introduced
PermissionRequirementDefinitionas a framework-neutral value object for defining permission requirements using:- single permission
anyOfpermission groupsallOfpermission groups- compound
anyOf+allOfrequirements
-
Permission Map Provider Contract: Added
PermissionMapProviderInterfaceto let modules provide permission maps in a consistent and type-safe way. -
Module Permission Provider Discovery Contract: Added
ProvidesPermissionMapsInterfaceto allow module/package-level classes to expose one or more permission map providers.
- Permission Mapping Extensibility: Established
SharedCommonas the only allowed shared dependency point for module-level permission definitions, keeping modules independent fromAdminKernelwhile allowing the kernel/application layer to aggregate permission maps safely.
-
Application Paths Utility: Introduced
AppPathsin theMaatify\SharedCommon\Pathnamespace as a dedicated utility for resolving commonly used project paths, including root, public, public images, storage, config, and logs. -
Nested Storage Path Resolver: Added
storagePath(string $subfolder)to support consistent and reusable generation of subpaths within the storage directory.
- Path Access Consistency: Standardized path resolution behind a dedicated utility class to provide clearer and more reusable access to common application directories.
-
Bootstrap Layer: Introduced
SharedCommonBindingsin theMaatify\SharedCommon\Bootstrapnamespace to provide a standardized way to registerClockInterfacewith the defaultSystemClockimplementation in PHP-DI containers. -
Standalone Package Preparation: Added a
composer.jsonfile to definemaatify/shared-commonas a standalone library, including PHP 8.2 requirements and PSR-4 autoloading configuration. -
Comprehensive Documentation: Introduced full documentation for the module including:
README.mdHOW_TO_USE.mdCHANGELOG.md- a complete architecture and integration documentation book under
docs/book/.
- Module Packaging Preparation: Refactored the module structure and metadata to support extraction into an independent reusable package (
maatify/shared-common) while keeping the current application behavior unchanged.
Future changes will be documented here.