florianwolters / component-core-immutable
作为PHP组件的不可变对象实现模式。
Requires
- php: >=5.4
- florianwolters/component-core-cloneable: 0.*
Requires (Dev)
- pdepend/pdepend: 2.0.*
- phpdocumentor/phpdocumentor: 2.*
- phpmd/phpmd: 2.0.*
- phpunit/phpunit: 4.1.*
- satooshi/php-coveralls: dev-master
- sebastian/phpcpd: 2.0.*
- sebastian/phpdcd: 1.0.*
- sensiolabs/security-checker: 1.3.*
- squizlabs/php_codesniffer: 2.0.*@dev
This package is not auto-updated.
Last update: 2024-09-14 13:33:57 UTC
README
FlorianWolters\Component\Core\Immutable 是一个简单易用的 PHP 组件,实现了 不可变对象 实现模式。
目录
简介
如果一个对象在构造之后其状态无法改变,则认为该对象是不可变的。最大程度地依赖不可变对象被广泛认为是一种创建简单、可靠代码的有效策略。
[...]
程序员通常不愿意使用不可变对象,因为他们担心创建新对象的成本与就地更新对象相比。对象创建的影响往往被高估,并且可以通过与不可变对象相关的某些效率来抵消。这包括减少垃圾回收带来的开销,以及消除保护可变对象免受损坏所需的代码。
特性
- 使用静态和动态测试程序测试了组件
- 使用 PHPUnit 实现了动态组件测试(单元测试和集成测试)。
- 使用以下工具执行静态代码分析
- PHP_CodeSniffer:样式检查器
- PHP Mess Detector (PHPMD):代码分析器
- PHP Depend:代码度量
- phpcpd:复制/粘贴检测器(CPD)
- phpdcd:死代码检测器(DCD)
- SensioLabs Security Checker:安全检查器
- 使用以下网络服务进行持续集成(CI)
- 提供了一个Packagist包,可以使用依赖管理器Composer安装。点击这里获取Packagist上的包。
- 提供了一个完整的phpDocumentor生成的应用程序编程接口(API)文档。点击这里获取API文档。
- 遵循PHP Framework Interoperability Group (FIG)的以下“标准”。PSR代表PHP标准建议
- 遵循语义版本控制(SemVer)规范版本2.0.0。
要求
生产
开发
- PHPUnit
- phpcpd
- phpdcd
- PHP_CodeSniffer
- PHP 混沌探测器(PHPMD)
- PDepend
- phpDocumentor
- SensioLabs 安全检查器
- php-coveralls
使用方法
FlorianWolters\Component\Core\Immutable 的最佳文档是其单元测试,这些测试包含在软件包中。
安装
FlorianWolters\Component\Core\Immutable 应使用依赖管理器 Composer 进行安装。
Composer 是用于PHP依赖管理的工具。它允许您声明项目中需要的依赖库,并为您安装它们。
可以使用 php 下载 Composer 安装程序。
php -r "readfile('https://composer.php.ac.cn/installer');" | php
这将仅检查一些 PHP 设置,然后将
composer.phar下载到您的当前工作目录。此文件是 Composer 二进制文件。它是一个PHAR(PHP 归档),它是一种 PHP 归档格式,可以在命令行上运行,以及其他用途。
要解决并下载依赖项,请运行
install命令
php composer.phar install
作为您的组件的依赖项
如果您正在创建依赖于 FlorianWolters\Component\Core\Immutable 的组件,请确保将 FlorianWolters\Component\Core\Immutable 添加到组件的 composer.json 文件中
{
"require": {
"florianwolters/component-core-immutable": "0.2.*"
}
}
贡献
参见 CONTRIBUTING.md。
致谢
许可
本程序是自由软件:您可以按照自由软件基金会发布的GNU Lesser General Public License的条款重新分发和/或修改它,许可证版本为3,或者(根据您的选择)任何更高版本。
本程序是根据希望它对您有用的前提下分发的,但不提供任何保证;甚至没有关于适销性或特定用途的暗示性保证。有关详细信息,请参阅GNU Lesser General Public License。
您应该已随本程序收到GNU Lesser General Public License的一份副本。如果没有,请参阅http://gnu.org/licenses/lgpl.txt。