florianwolters/component-util-singleton

Singleton(单例)和Registry of Singletons(又称Multiton,多例)设计模式作为PHP组件。

v0.3.2 2013-06-29 12:35 UTC

This package is not auto-updated.

Last update: 2024-09-14 14:52:56 UTC


README

Component\Util\Singleton 是一个简单易用的 PHP 组件,它提供了 Singleton(以及 Registry of Singletons,即 Multiton)创建型设计模式。

Build Status Scrutinizer Code Quality Code Coverage SensioLabsInsight Coverage Status

Latest Stable Version Total Downloads Monthly Downloads Daily Downloads Latest Unstable Version License

Stories in Ready Dependency Status Dependencies Status HHVM Status

目录

简介

Singleton 是一个 创建型 设计模式,定义为以下内容

"确保一个类只有一个实例,并提供一个全局访问点。"

-- E. Gamma 等. 设计模式:可重用面向对象软件元素。Westford: Addison-Wesley, 1995。

Component\Util\Singleton 包含两个特质

  • 特质 SingletonTrait:Singleton创建型设计模式的通用实现。
  • 特质 MultitonTrait:Registry of Singletons(即Multiton)创建型设计模式的通用实现。

作为特质的通用实现使得这个组件 可重用(请参阅下面的特性部分)。

特性

  • 允许向静态 创建方法 getInstance() 传递参数。参数通过使用该组件传递到类的受保护的构造函数中。
  • 允许无限数量的类使用该组件。
  • 不允许克隆和序列化 Singleton(或 Multiton)实例。
  • 不允许重写 getInstance()__clone__wakeup 方法。
  • 遵循 Singleton 设计模式的命名约定(提供一个静态 创建方法 getInstance())。
  • 使用静态和动态测试程序测试了工件
  • 提供了一个 Packagist 包,可以使用依赖管理器 Composer 安装。点击这里访问 Packagist 上的包。
  • 提供了一个由文档生成器 Sami 生成的完整应用程序编程接口 (API) 文档。点击这里访问 API 文档。
  • 遵循来自 PHP 框架互操作性组 (FIG) 的以下“标准”。PSR 代表 PHP 标准推荐
    • PSR-0:自动加载标准

      旨在提供标准文件、类和命名空间约定,以允许即插即用代码。

    • PSR-1:基本编码标准

      旨在确保共享 PHP 代码之间高度的技术互操作性。

    • PSR-2:编码风格指南

      为希望标准化其代码的项目提供编码风格指南。

    • PSR-4:自动加载器

      对自动加载的现代处理方式,反映了生态系统的进步。

  • 遵循语义版本控制 (SemVer) 规范版本 2.0.0。

要求

生产

开发

安装

Component\Util\Singleton 应使用依赖管理器 Composer 安装。

Composer 是 PHP 中的依赖管理工具。它允许您声明项目需要的依赖库,并为您安装它们。

可以使用 php 下载 Composer 安装器。

php -r "readfile('https://getcomposer.org.cn/installer');" | php

这将仅检查一些 PHP 设置,然后下载 composer.phar 到您的当前工作目录。此文件是 Composer 的二进制文件。它是一个 PHAR (PHP 存档),它是一种 PHP 存档格式,可以在命令行上运行,以及其他操作。

要解决和下载依赖项,请运行 install 命令

php composer.phar install

如果您正在创建依赖于 Component\Util\Singleton 的组件,请确保将 Component\Util\Singleton 添加到组件的 composer.json 文件中

{
    "require": {
        "florianwolters/component-util-singleton": "0.3.*"
    }
}

使用方法

Component\Util\Singleton 的最佳文档是包含在包中的单元测试。

有关项目的更多文档可以在官方 Wiki 上找到。

测试

phpunit

贡献

请参阅CONTRIBUTING获取详细信息。

鸣谢

许可

本程序是自由软件:您可以在自由软件基金会发布的GNU Lesser General Public License(GNU较小于公共许可证)的条款下重新分发和/或修改本程序,许可证版本为3,或(根据您的选择)任何更高版本。

本程序分发时希望它能对您有所帮助,但没有任何保证;甚至没有关于适销性或特定用途适用性的暗示性保证。有关更多详细信息,请参阅GNU Lesser General Public License。

您应该已收到GNU Lesser General Public License的副本。如果没有,请参阅https://gnu.org/licenses/lgpl.txt