florianwolters / component-util-singleton
Singleton(单例)和Registry of Singletons(又称Multiton,多例)设计模式作为PHP组件。
Requires
- php: >=5.4
- florianwolters/component-core-stringutils: 0.3.*
- florianwolters/component-util-reflection: 0.2.*
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)创建型设计模式。
目录
简介
Singleton 是一个 创建型 设计模式,定义为以下内容
"确保一个类只有一个实例,并提供一个全局访问点。"
-- E. Gamma 等. 设计模式:可重用面向对象软件元素。Westford: Addison-Wesley, 1995。
Component\Util\Singleton 包含两个特质
- 特质
SingletonTrait
:Singleton创建型设计模式的通用实现。 - 特质
MultitonTrait
:Registry of Singletons(即Multiton)创建型设计模式的通用实现。
作为特质的通用实现使得这个组件 可重用(请参阅下面的特性部分)。
特性
- 允许向静态 创建方法
getInstance()
传递参数。参数通过使用该组件传递到类的受保护的构造函数中。 - 允许无限数量的类使用该组件。
- 使用
SingletonTrait
(或MultitonTrait
)的类仍然可以继承另一个类。 - 继承使用
SingletonTrait
(或MultitonTrait
)的类的类是一个新的 Singleton(或 Multiton)。因此,该组件支持继承。
- 使用
- 不允许克隆和序列化 Singleton(或 Multiton)实例。
- 不允许重写
getInstance()
、__clone
和__wakeup
方法。 - 遵循 Singleton 设计模式的命名约定(提供一个静态 创建方法
getInstance()
)。 - 使用静态和动态测试程序测试了工件
- 使用 PHPUnit 实现了动态组件测试(单元和集成测试)。
- 使用以下工具执行静态代码分析
- PHP_CodeSniffer:样式检查器
- PHP Mess Detector (PHPMD):代码分析器
- PHP Depend:代码度量
- phpcpd:复制/粘贴检测器(CPD)
- phpdcd:死代码检测器(DCD)
- SensioLabs 安全检查器:安全检查器
- 使用以下网络服务进行持续集成 (CI)
- 提供了一个 Packagist 包,可以使用依赖管理器 Composer 安装。点击这里访问 Packagist 上的包。
- 提供了一个由文档生成器 Sami 生成的完整应用程序编程接口 (API) 文档。点击这里访问 API 文档。
- 遵循来自 PHP 框架互操作性组 (FIG) 的以下“标准”。PSR 代表 PHP 标准推荐
- 遵循语义版本控制 (SemVer) 规范版本 2.0.0。
要求
生产
- PHP >= 5.4
- Composer
- florianwolters/component-util-reflection
- florianwolters/component-core-stringutils
开发
安装
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。