baghayi / strategy-validator
一个实现策略设计模式的zf2验证器,主要用于在Apigility中使用。
Requires
- php: >=5.3.23
This package is auto-updated.
Last update: 2024-08-29 04:19:00 UTC
README
简介
这是一个主要为了在Apigility中使用而创建的zf2模块。事实上,Apigility默认附带了一些验证器,其中之一就是Zend\Validator\Callable。StrategyValidator模块在某些方面与Callable验证器非常相似,但实现方式略有不同。
在Callable中,您需要预先创建一个对象,可能永远都不会使用它。您甚至可能很难将领域逻辑的依赖项传递给它,因为它不是一个类,即使它是,您也必须先创建其实例。
当我创建这个模块时,我考虑的是解决这些问题。这让我感到烦恼 :)
通过使用这个验证器,您只需要创建自己的类,以非常干净和不太模糊的方式解决其依赖项,然后将它传递给StrategyValidator验证器,您就可以继续了。
安装
首先,您需要手动、使用git或通过composer下载此模块。建议使用composer,但选择权在您。
如果您使用composer,它将默认将模块下载到vendor/目录。如果您手动下载或使用git克隆,则需要将其放置在vendor/目录下,就像composer所做的那样。
然后,您需要在config/application.config.php文件下的'modules'键中将'StrategyValidator'添加到您的配置中。
-
对于使用composer安装,您需要在项目的根目录下运行以下命令
composer require "baghayi/strategy-validator:dev-master"
-
如果您想直接使用git克隆,则需要在vendor/目录下(或从您的模块加载的任何位置)运行以下命令
git clone https://github.com/baghayi/StrategyValidator
-
您还可以通过点击'下载ZIP'按钮或使用此URL下载模块,然后将其放置在vendor/目录下
https://github.com/baghayi/StrategyValidator/archive/master.zip
现在,您可以继续了。
用法
此验证器已经定义为在Apigility中使用,您无需做任何事情,只需下载此模块并启用它即可。
为了使用它,首先您需要创建一个实现以下接口的类
StrategyValidator/Strategy/StrategyInterface.php
此接口只需要实现一个方法
isValid($value)
它将获取需要验证的值作为其第一个参数。在检查其是否有效后,您需要返回一个布尔值。
然后您需要在主服务管理器
中注册您的类作为服务。
它可以是factory
、invokable
或其他您想要的任何内容。它只需要在主服务管理器中注册,而不是在验证器插件管理器或其他任何管理器中。
最后,您需要将服务名称传递给StrategyValidator验证器的strategy
。
策略验证器(StrategyValidator)(StrategyValidator\Validator\Strategy)
有两个主要选项。第一个和其他选项一样,是 message
,用于指定验证失败时显示的消息。第二个选项是 strategy
,用于指定您的策略类。(您在第一步中已经创建的类)
在服务管理器中注册您的类后,您需要将其作为 strategy
选项传递给 StrategyValidator 验证器,同时传递 message
选项。
在 Apigility 管理仪表板上添加策略和消息选项非常简单。因为它列在下拉框中(在验证部分的课程中),可以通过这种方式选择并指定。
简而言之
- 创建一个类。
- 实现 StrategyValidator/Strategy/StrategyInterface.php 接口。
- 在主服务管理器中注册为服务。
- 将服务名称作为 'strategy' 选项传递给验证器。
- 将 'message' 选项与 'strategy' 一起设置。
这就是全部了。希望它会有所帮助。