StaticClass
Phuture\Coherence\Support\StaticClass
abstract class StaticClass
Static base class that prevents instantiation and enforces static-only usage.
This class is designed to be extended by classes that should only contain static methods and never be instantiated.
Important: Use static classes sparingly and only when strictly necessary (e.g., utility/helper functions). Static methods can make code harder to test and maintain due to:
- Inability to mock in unit tests
- Hidden dependencies and tight coupling
- Lack of polymorphism and interface implementation
Reserve static classes for simple utility functions that have no state or dependencies.
Example:
1namespace Phuture\Coherence;
2
3use Phuture\Coherence\Class\StaticClass;
4
5class StringHelper extends StaticClass
6{
7 public static function slugify(string $text): string { ... }
8}
9
10$slug = StringHelper::slugify('Hello World');
Methods
__construct()
private function __construct()
Class is static and cannot be instantiated.
__callStatic()
public static function __callStatic(string $name, array $arguments): void
Handle calls to undefined static methods.
| Parameter | Type | Description |
|---|---|---|
$name |
string |
The name of the method being called |
$arguments |
array |
Enumerated array containing the parameters passed to the method |
Throws
MemberAccessException— If the called static method does not exist on the class