cse / base-singleton
单例设计模式,允许轻松使用单例类。
Requires
- php: >=7.1
- cse/base-exceptions: *
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-19 03:07:24 UTC
README
英文 | 俄语
SINGLETON CSE BASE
单例设计模式,允许轻松使用单例类。
项目仓库: https://github.com/cs-eliseev/base-singleton
演示
class ExampleSingleton { use SingletonTrait; ... } $instance = ExampleSingleton::getInstance(); $instanceName = ExampleSingleton::getInstance('instance_name');
简介
CSE BASE 是一组用 PHP 编写的库,专门用于扩展您的类。
一组创建类的基本方法可以帮助您快速创建 Web 应用程序。SINGLETON CSE BASE 允许轻松简单地创建单例类。
CSE BASE 是为了快速开发 Web 应用程序而创建的。
CSE Base 项目
以下是一些有关如何初始化库和执行常见命令的信息。
安装
您可以在 这里 找到此项目的最新版本。
Composer
执行以下命令以获取包的最新版本
composer require cse/base-singleton
或者 composer.json 文件应包含以下内容
{ "require": { "cse/base-singleton": "*" } }
Git
在本地上克隆此仓库
git clone https://github.com/cs-eliseev/base-singleton.git
下载
用法
查看测试模型: ModelSingleton.php
查看示例: examples-singleton.php
创建模型单例
示例
class ModelSingleton { use SingletonTrait; protected $param = 0; /** * @param int $param */ public function setParam(int $param): void { $this->param = $param; } /** * @return int */ public function getParam(): int { return $this->param; } }
创建实例单例
示例
$instance = ModelSingleton::getInstance(); $instance->setParam(10); $instance->getParam(); // 10
按名称创建单例实例
$instance2 = ModelSingleton::getInstance('new'); $instance2->setParam(20); $instance->getParam(); // 10 $instance2->getParam(); // 20
恢复单例实例
$instance3 = ModelSingleton::getInstance(); $instance3->setParam(30); $instance->getParam(); // 30 $instance2->getParam(); // 20 $instance3->getParam(); // 30
单例异常
__CLONE
try { $clone = clone ModelSingleton::getInstance(); } catch (CSESingletonException $e) { // Singleton can not using clone }
__SLEEP
try { $serialize = serialize(ModelSingleton::getInstance()); } catch (CSESingletonException $e) { // Singleton can not serialize }
__WAKEUP
try { ... } catch (CSESingletonException $e) { // Singleton can not deserialize }
测试与代码覆盖率
PHPUnit 用于单元测试。单元测试确保类和方法确实执行了预期的工作。
PHPUnit 的一般文档可以在 https://phpunit.de/documentation.html 找到。
要运行 PHPUnit 单元测试,请执行以下操作
phpunit PATH/TO/PROJECT/tests/
如果您想生成代码覆盖率报告,请使用以下命令
phpunit --coverage-html ./report PATH/TO/PROJECT/tests/
使用了 PHPUnit 默认配置
phpunit --configuration PATH/TO/PROJECT/phpunit.xml
捐赠
您可以通过 这里 支持此项目。您还可以通过为项目做出贡献或报告错误来提供帮助。提出关于功能的建议也是非常好的。任何帮助都是受欢迎的。
许可
SINGLETON CSE BASE 是开源 PHP 库,MIT 许可证授权。请参阅 许可文件 了解更多信息。
GitHub @cs-eliseev