Roave/Dont 项目使用教程
1. 项目目录结构及介绍
Roave/Dont 项目的目录结构如下:
Roave/Dont/
├── docs/
├── src/
│ └── Dont/
│ ├── DontDeserialise.php
│ ├── DontSerialise.php
│ ├── DontClone.php
│ ├── DontGet.php
│ ├── DontSet.php
│ ├── DontCall.php
│ ├── DontCallStatic.php
│ ├── DontToString.php
│ └── JustDont.php
├── tests/
├── .gitignore
├── LICENSE
├── README.md
├── composer.json
├── composer.lock
├── infection.json.dist
├── phpunit.xml.dist
└── renovate.json
目录结构介绍
- docs/: 存放项目的文档文件。
- src/Dont/: 存放项目的主要源代码文件,包含多个防御性编程的 trait。
- tests/: 存放项目的测试文件。
- .gitignore: Git 忽略文件配置。
- LICENSE: 项目许可证文件。
- README.md: 项目介绍和使用说明。
- composer.json: Composer 依赖管理文件。
- composer.lock: Composer 锁定文件,记录当前依赖的精确版本。
- infection.json.dist: 代码覆盖率测试配置文件。
- phpunit.xml.dist: PHPUnit 测试配置文件。
- renovate.json: 自动更新依赖配置文件。
2. 项目启动文件介绍
Roave/Dont 项目没有传统意义上的“启动文件”,因为它是一个 PHP 库,主要通过 Composer 进行依赖管理。项目的核心功能通过 src/Dont/
目录下的 trait 实现。
使用示例
use Dont\DontSerialise;
class MyClass {
use DontSerialise;
}
serialize(new MyClass); // 这将抛出一个异常
3. 项目配置文件介绍
composer.json
composer.json
文件是 Roave/Dont 项目的主要配置文件,用于管理项目的依赖和元数据。
{
"name": "roave/dont",
"description": "Small set of defensive programming utilities/traits for PHP",
"license": "MIT",
"require": {
"php": "^7.1 || ^8.0"
},
"autoload": {
"psr-4": {
"Dont\\": "src/Dont/"
}
},
"require-dev": {
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
"infection/infection": "^0.13.0"
}
}
phpunit.xml.dist
phpunit.xml.dist
文件是 PHPUnit 的配置文件,用于配置测试环境。
<phpunit bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="Dont">
<directory>tests/</directory>
</testsuite>
</testsuites>
</phpunit>
infection.json.dist
infection.json.dist
文件是代码覆盖率测试工具 Infection 的配置文件。
{
"source": {
"directories": [
"src"
]
},
"timeout": 10,
"logs": {
"text": "infection-log.txt",
"summary": "summary-log.txt",
"debug": "debug-log.txt"
},
"mutators": {
"@default": true
}
}
通过以上配置文件,可以确保项目在开发和测试过程中保持一致性和可靠性。