baghayi/strategy-validator

一个实现策略设计模式的zf2验证器,主要用于在Apigility中使用。

v0.1.0 2014-12-22 14:16 UTC

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)

它将获取需要验证的值作为其第一个参数。在检查其是否有效后,您需要返回一个布尔值。

然后您需要在主服务管理器中注册您的类作为服务。

它可以是factoryinvokable或其他您想要的任何内容。它只需要在主服务管理器中注册,而不是在验证器插件管理器或其他任何管理器中。

最后,您需要将服务名称传递给StrategyValidator验证器的strategy

策略验证器(StrategyValidator)(StrategyValidator\Validator\Strategy) 有两个主要选项。第一个和其他选项一样,是 message,用于指定验证失败时显示的消息。第二个选项是 strategy,用于指定您的策略类。(您在第一步中已经创建的类)

在服务管理器中注册您的类后,您需要将其作为 strategy 选项传递给 StrategyValidator 验证器,同时传递 message 选项。

在 Apigility 管理仪表板上添加策略和消息选项非常简单。因为它列在下拉框中(在验证部分的课程中),可以通过这种方式选择并指定。

简而言之

  • 创建一个类。
  • 实现 StrategyValidator/Strategy/StrategyInterface.php 接口。
  • 在主服务管理器中注册为服务。
  • 将服务名称作为 'strategy' 选项传递给验证器。
  • 将 'message' 选项与 'strategy' 一起设置。

这就是全部了。希望它会有所帮助。