florianwolters / component-core-cloneable
允许并禁止PHP组件中对象的克隆。
Requires
- php: >=5.4
This package is not auto-updated.
Last update: 2024-09-14 14:12:22 UTC
README
FlorianWolters\Component\Core\Cloneable是一个易于使用的PHP组件,允许并禁止对象的克隆。
目录
简介
此组件受Java编程语言的启发。
FlorianWolters\Component\Core\Cloneable由六个工件组成
- 接口
FlorianWolters\Component\Core\CloneableInterface
:指示类的魔术方法__clone
可以对该类实例进行字段到字段的复制。 - 异常类
FlorianWolters\Component\Core\CloneNotSupportedException
:指示在类中调用了魔术方法__clone
来克隆对象,但该对象的类没有实现CloneableInterface
。 - 特质
FlorianWolters\Component\Core\CloneNotSupportedTrait
:指示类的魔术方法__clone
不能对该类实例进行字段到字段的复制。 - 特质
FlorianWolters\Component\Core\ShallowCloneTrait
:指示类的魔术方法__clone
可以对该类实例进行字段到字段的浅层复制。 - 特质
FlorianWolters\Component\Core\DeepCloneTrait
:指示类的魔术方法__clone
可以对该类实例进行字段到字段的深层复制。 - 静态类
FlorianWolters\Component\Core\CloneUtils
:提供克隆对象的操作。
特性
- 通过使用特质
CloneNotSupportedTrait
禁止通过魔术方法__clone
进行克隆。当尝试通过clone
关键字复制对象时,将抛出CloneNotSupportedException
异常。 - 允许通过实现接口
CloneableInterface
和使用以下两个 trait 之一,通过魔术方法__clone
来进行(类型安全的)克隆:使用ShallowCloneTrait
来创建浅拷贝,或者使用DeepCloneTrait
来创建深拷贝。 - 允许通过类
CloneUtils
的copyDeep
方法创建任何对象的深拷贝。 - 使用静态和动态测试程序测试了工件。
- 使用 PHPUnit 实现了动态组件测试(单元测试和集成测试)。
- 使用以下工具执行了静态代码分析:
- PHP_CodeSniffer:代码风格检查器
- PHP Mess Detector (PHPMD):代码分析器
- PHP Depend:代码度量
- phpcpd:复制粘贴检测器(CPD)
- phpdcd:无效代码检测器(DCD)
- SensioLabs Security Checker:安全检查器
- 使用以下网络服务进行持续集成(CI):
- 提供了一个 Packagist 包,可以使用依赖管理器 Composer 安装。点击 此处 查看Packagist上的包。
- 提供了一个使用文档生成器 phpDocumentor 生成的完整应用程序编程接口(API)文档。点击 此处 查看API文档。
- 遵循 PHP 框架互操作性小组 (FIG) 的以下“标准”。PSR代表PHP标准建议
- 遵循语义版本控制(SemVer)规范版本2.0.0。
要求
生产
开发
- PHPUnit
- phpcpd
- phpdcd
- PHP_CodeSniffer
- PHP Mess Detector (PHPMD)
- 依赖关系分析工具
- phpDocumentor
- SensioLabs 安全检查器
- php-coveralls
用法
FlorianWolters\Component\Core\Cloneable 的最佳文档是它所包含的单元测试。
安装
FlorianWolters\Component\Core\Cloneable 应使用依赖管理工具 Composer 进行安装。
可以使用 php
下载 Composer 安装程序。
php -r "readfile('https://getcomposer.org.cn/installer');" | php
这将会检查一些 PHP 设置,并将
composer.phar
下载到您的当前工作目录。这个文件是 Composer 的二进制文件。它是一个 PHAR (PHP 归档),它是一种可以在命令行上运行的 PHP 归档格式。
要解决并下载依赖项,请运行
install
命令
php composer.phar install
作为组件依赖
如果您正在创建依赖于 FlorianWolters\Component\Core\Cloneable 的组件,请确保将 FlorianWolters\Component\Core\Cloneable 添加到您的组件的 composer.json
文件中
{ "require": { "florianwolters/component-core-cloneable": "0.3.*" } }
贡献
请参阅 CONTRIBUTING.md
.
致谢
许可证
本程序是自由软件:您可以根据自由软件基金会发布的 GNU 较小通用公共许可证的条款重新分发和/或修改它,许可证版本为 3,或(根据您的选择)任何更高版本。
本程序的分发是希望它将是有用的,但没有提供任何保证;甚至没有对适销性或特定用途适用性的暗示保证。有关详细信息,请参阅 GNU 较小通用公共许可证。
您应该已经收到一份 GNU 较小通用公共许可证副本。如果没有,请参阅 http://gnu.org/licenses/lgpl.txt.