piotrpress/singleton

This library is a Singleton (anti)pattern implementation using a Traits with a support for an Object Inheritance and passing parameters to the constructor.

v6.0.1 2022-02-22 15:33 UTC

This package is auto-updated.

Last update: 2024-04-22 20:19:10 UTC


README

This library is a Singleton (anti)pattern implementation using a Traits with a support for an Object Inheritance and passing parameters to the constructor.

Installation

composer require piotrpress/singleton

Usage

require __DIR__ . '/vendor/autoload.php';

use PiotrPress\Singleton;

class ExampleParent {
    use Singleton;
}

class Example extends ExampleParent {
    protected function __construct( $arg ) {}
}

Example::setInstance( 'arg' );
Example::getInstance();

Methods

  • setInstance() - executes __construct() and can be called only once, otherwise Exception will be throwen
  • getInstance() - returns null before successfully setInstance() call
  • issetInstance() - returns true if an instance exists, false otherwise
  • unsetInstance() - unsets an instance

Requirements

PHP >= 7.4 version.

License

GPL3.0