hametuha / singleton-pattern
PHP 抽象单例模式。
1.2.1
2022-12-05 06:15 UTC
Requires
- php: >=5.6
Requires (Dev)
- phpunit/phpunit: ^5.7|^6|^7|^8
This package is auto-updated.
Last update: 2024-09-05 09:46:54 UTC
README
PHP 抽象单例模式。
安装
composer require hametuha/singleton-pattern
如何使用
从抽象类 Hametuha\SingletonPattern\Singleton
继承。
<?php use Hametuha\SingletonPattern\Singleton; class SampleSingleton extends Singleton { private $version = ''; /** * This method is called inside constructor. */ protected function init() { $this->version = get_wp_version(); } /** * Greeting. */ public function greet() { echo 'Hello World!'; } }
然后,在类外部调用它。
<?php SampleSingleton::get_instance()->greet(); // -> Hello World!
批量注册
如果您有基于 PSR-0(或可能是 PSR-4)的结构,您可以批量注册它们。例如...
src
└Vendor
└Library
└NameSpace
├SampleClass
├OtherClass
└AnotherClass
您可以通过调用 BulkRegister::enable
加载它们全部!
Hametuha\SingletonPatter\BulkRegister::enable( 'Vendor\Library\NameSpace', __DIR__ . '/src/Vendor/Library/NameSpace' );
// => 3(enabled class count)
语法如下
BulkRegister::enable( $namespace, $directory_to_scan, $subclass, $method )
$namespace
命名空间前缀。在上面的例子中,Vendor/Library\NameSpace
。$directory_to_scan
将扫描此目录。**非递归**$subclasss
类应该是此类名的子类。默认为Hametuha\SingletonPattern\Singleton
。$method
静态方法调用。默认为get_instance()
。
许可证
GPL 3.0 或更高版本。