krubio / perfect-validation
SOLID兼容的OOP验证
v0.1.3
2023-10-21 23:20 UTC
Requires
- php: >=8.0.0
Requires (Dev)
- codeception/codeception: ^5.0
- codeception/module-asserts: *
- nunomaduro/phpinsights: ^2.8
- phpstan/phpstan: ^1.10
- vimeo/psalm: ^5.12
This package is auto-updated.
Last update: 2024-09-22 01:06:16 UTC
README
验证器类文档
Validator
类负责使用不同的验证策略来验证数据。它允许您根据具体需求设置和切换不同的验证策略。
类签名
class Validator { private ValidationStrategy $strategy; public function __construct(ValidationStrategy $strategy); public function setValidationStrategy(ValidationStrategy $strategy): void; public function validateData($data): mixed; public function validateDataWithErrors($data): array; }
构造函数
__construct(ValidationStrategy $strategy)
构造函数接受一个ValidationStrategy
对象作为参数,该参数决定了要使用的特定验证策略。初始验证策略在对象创建时设置。
公共方法
setValidationStrategy(ValidationStrategy $strategy): void
此方法允许您通过提供ValidationStrategy
对象作为参数来设置新的验证策略。它用新策略替换现有的验证策略。
validateData($data): mixed
validateData
方法用于使用当前验证策略执行数据验证。它接受要验证的数据作为参数,并返回验证结果。
validateDataWithErrors($data): array
validateDataWithErrors
方法执行数据验证,并返回包含验证状态和任何错误(如有)的数组。如果策略对象有getErrors
方法,错误将包含在数组中。
-
参数
$data
:要验证的数据。
-
返回值
- 返回验证结果,这取决于正在使用的特定验证策略。它可以是布尔值(成功验证为
true
,否则为false
)或其他基于策略实现的数据类型,或包含验证状态和错误的数组(如有)。
- 返回验证结果,这取决于正在使用的特定验证策略。它可以是布尔值(成功验证为
用法示例
以下是一个演示Validator
类基本用法的示例
// Create a validator with a specific validation strategy $validator = new Validator($requiredFieldsStrategy); // Set a new validation strategy if needed $validator->setValidationStrategy($customValidationStrategy); // Perform data validation $data = $_POST; // Example data to be validated $result = $validator->validateData($data); // Perform data validation with errors $resultWithErrors = $validator->validateDataWithErrors($data); // Check the validation result if ($result === true) { echo "Validation passed! The data is valid."; } elseif (isset($resultWithErrors['errors'])) { echo "Validation failed! Errors: " . implode(', ', $resultWithErrors['errors']); } else { echo "Validation failed! Please check the data for errors."; }
在上面的示例中
Validator
类使用初始验证策略($requiredFieldsStrategy
)实例化。- 如果需要,您可以使用
setValidationStrategy
方法切换到不同的验证策略。 - 使用要验证的数据(
$data
)调用validateData
和validateDataWithErrors
方法。 - 检查返回结果以确定验证是否通过。
- 根据验证结果,您可以执行适当的操作或显示错误消息。
注意:示例中使用的特定验证策略($requiredFieldsStrategy
和$customValidationStrategy
)未显示,因为它们取决于您的具体实现。