hametuha/singleton-pattern

PHP 抽象单例模式。

1.2.1 2022-12-05 06:15 UTC

This package is auto-updated.

Last update: 2024-09-05 09:46:54 UTC


README

PHP 抽象单例模式。

Travis CI

安装

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 或更高版本。