afragen/singleton

单例静态代理生成器。

dev-master 2023-03-20 16:02 UTC

This package is auto-updated.

Last update: 2024-09-20 19:14:45 UTC


README

这是一个单例静态代理生成器,我在几个项目中使用它来代替真正的单例。它受到了Alain Schlesser关于单例的文章的启发。

我已经把这个库移到了自己的仓库中,这样我就可以更好地通过composer包含它。

我编写它是为了与PSR-4兼容。

composer require afragen/singleton:dev-master

当你在项目中使用这个Singleton类时,你将创建一个类实例数组。

用法

@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 );

通常可以这样调用。

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

我会尽量自动确定类的命名空间。如果类位于src子文件夹中,需要在调用中指定如下。

如果为src目录设置了PSR-4,并且类位于src/MySubDir/MyClass,相应的调用如下。

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

我仍在学习如何正确设置使用composer,所以这可能会在过程中更新。