CODESAMPLE
Module - PHP
The Module pattern in PHP aims to encapsulate functionality and data within a single unit, exposing only a public interface while keeping internal details private. This promotes code organization, reduces global namespace pollution, and enhances maintainability. The implementation uses a closure to create a private scope. Variables and functions defined within the closure are only accessible through the returned public methods. This approach is idiomatic PHP as it leverages closures, a core language feature, to achieve encapsulation without requiring classes in simpler scenarios. It’s a lightweight alternative when full object-oriented structure isn’t necessary.
<?php
/**
* Module Pattern Example in PHP
*/
$module = function() {
// Private variables and functions
$privateVariable = 'Secret Value';
function privateFunction() {
return 'This is a private function.';
}
// Public interface
return [
'getPrivateVariable' => function() use ($privateVariable) {
return $privateVariable;
},
'publicFunction' => function() {
return 'This is a public function that calls a private one: ' . privateFunction();
},
];
};
// Usage
echo $module()['getPrivateVariable']() . "\n";
echo $module()['publicFunction']() . "\n";
// Attempting to access private parts directly will result in an error
// echo $module()['privateVariable']; // Fatal error: Uncaught Error: Call to undefined function
?>