afragen / singleton
单例静态代理生成器。
dev-master
2023-03-20 16:02 UTC
Requires
- php: >=5.6.5
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,所以这可能会在过程中更新。