HEX
Server: Apache
System: Linux 4801f1b1.ptr.provps.com 6.17.8-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Nov 13 18:02:25 EST 2025 x86_64
User: nassaugo (1004)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/nassaugo/public_html/wp-content/plugins/git-updater/vendor/afragen/singleton/README.md
# singleton

This is a singleton static proxy generator that I use in several projects instead of creating true Singletons. It was inspired by [Alain Schlesser’s post on Singletons](https://www.alainschlesser.com/singletons-shared-instances/).

I’ve moved this library into it’s own repository so that I will be better able to include it via composer.

I have written it to work with PSR-4.

`composer require afragen/singleton:dev-master`

When using this Singleton class in your project you will create an array of class instances.

## Usage

```php
@param string            $class_name Class name.
@param object            $caller     Originating object.
@param null|array|object $options    Options for class constructor.
                                     Optional.

Singleton::get_instance( $class_name, $calling_class, $options );
```

This will usually be called as follows.

`Singleton::get_instance( 'MyClass', $this );`

I do my best to automatically determine the namespace of the class. If the class is in a subfolder of `src` it will need to be designated in the call as follows.

If PSR-4 is set for the `src` directory and the class lives in `src/MySubDir/MyClass` the corresponding call would be as follows.

`Singleton::get_instance( 'MySubDir\MyClass', $this );`

I’m still learning how to properly set up using composer so this may be updated along the way.