edisonlabs / policy-verification
用于策略验证和报告的PHP库。
1.2.0
2023-11-13 14:00 UTC
Requires
- symfony/config: ^6.2
- symfony/console: ^6.2
- symfony/dependency-injection: ^6.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^6.5
This package is auto-updated.
Last update: 2024-09-13 15:43:18 UTC
README
策略验证
概述
策略验证是一个简单的库,它提供了创建和报告安全策略检查的基础类。
每个策略检查的结果会返回是否通过策略,同时也会报告其他信息,如策略失败时需要采取的操作。
用法
该库默认不提供任何策略检查。要创建新的检查,请创建一个新的Composer包并将其作为依赖项添加。
composer require edisonlabs/policy-verification
现在创建策略检查类,这些类扩展了库提供的基类。
这些类必须创建在/src/EdisonLabs/PolicyVerification
。这是库自动定位和执行检查以生成报告的要求。
// File: /src/EdisonLabs/PolicyVerification/PhpVersion.php namespace EdisonLabs\PolicyVerification; use EdisonLabs\PolicyVerification\Check\AbstractPolicyCheckBase; class PhpVersion extends AbstractPolicyCheckBase { public function getName() { return 'PHP version'; } public function getDescription() { return 'Checks whether system is running a recent version of PHP'; } public function getCategory() { return 'PHP'; } public function getSeverity() { return parent::POLICY_SEVERITY_HIGH; } public function checkRequirements() { // Example of requirement verification. if (!is_array($this->getData())) { $this->setRequirementError('Invalid data'); } } public function check() { $phpVersion = phpversion(); if ($phpVersion[0] < 7) { $this->setAction('Upgrade to PHP 7 or greater'); $this->setResultErrorMessage('The system is running an older version of PHP'); return parent::POLICY_FAIL; } $this->setWarning('PHP 7.1 will have security support up to Dec 2019'); $this->setResultPassMessage('The system is running a recent version of PHP'); return parent::POLICY_PASS; } }
在composer.json
中配置自动加载。
"autoload": {
"psr-4": {
"EdisonLabs\\PolicyVerification\\": "src/EdisonLabs/PolicyVerification"
}
}
重新创建Composer自动加载器。
composer dump-autoload
报告
有两种方式可以生成策略检查结果报告:程序化和/或通过命令行。
程序化
use EdisonLabs\PolicyVerification\Report; // Some custom data to pass to the policy checks. $data = array(); $report = new Report($data); // Prints the result summary. print_r($report->getResultSummary()); // Other report methods. $report->getChecks(); $report->getPassChecks(); $report->getScorePercentage(); $report->setData($data); $report->getData(); $report->getFailChecks(); $report->getActions(); $report->getPassChecksResultMessages(); $report->getFailChecksResultMessages(); $report->getRequirementErrors(); $report->getResult(); $report->getResultSummary(); $report->getScore(); $report->getTotalChecks(); $report->getWarnings(); $report->setCheck($check);
命令
命令位于vendor/bin/policy-verification
。将vendor/bin
目录包含在系统$PATH
中,以便从任何地方运行此命令。
输入policy-verification --help
以查看所有可用选项。