吉姆-莫泽/zf2-validators-empty-or-plugin

jim-moser/zf2-validators-empty-or 插件管理器配置,用于配置 Laminas 框架 2 验证器插件管理器(Laminas/Validator/ValidatorPluginManager)以使用来自 jim-moser/zf2-validators-empty-or 包的验证器。

1.0.5 2020-07-30 17:43 UTC

This package is not auto-updated.

Last update: 2024-09-20 13:27:36 UTC


README

#概述

此包包含一个 Module.php 文件和配置文件,用于配置 Laminas 框架 2 验证器插件管理器(Laminas/Validator/ValidatorPluginManager),以使用来自 jim-moser/zf2-validators-empty-or 包的验证器。如果您希望 Laminas 框架应用程序能够从 Laminas 框架验证器插件管理器中检索由 jim-moser/zf2-validators-empty-or 包提供的验证器实例,请使用此包。

由于此包依赖于 jim-moser/zf2-validators-empty-or 包,因此如果您想同时使用此包和 jim-moser/zf2-validators-empty-or 包,您只需简单地将此包添加到应用程序的 composer.json 文件中。

为了将依赖项减少到使用提供的验证器所需的最小值,因此从 jim-moser/zf2-validators-empty-or 包中拆分出此包。

相关包

有关上述相关包的简要说明,请参阅 jim-moser/zf2-validators-empty-or 包的 README.md 文件。

#依赖项

此包中的代码直接依赖于以下包中的代码和类:jim-moser/zf2-validators-empty-or laminas/laminas-modulemanager

然而,laminas-modulemanager 和/或其依赖项似乎在代码和类中有多个依赖项,这些依赖项未在 laminas-modulemanager 和其依赖项的 composer.json 文件中指定为依赖项。为了避免此问题导致问题,已将这些缺失的依赖项添加到此包的 composer.json 文件中。添加到 composer.json 文件“requires”部分下的附加依赖项是:laminas/laminas-console laminas/laminas-loader laminas/laminas-mvc laminas/laminas-servicemanager

#安装

##替代方案 1:使用 Composer 安装

  1. 对于现有的 Laminas 框架安装,请进入 vendor 目录的父目录。此目录应包含现有的 composer.json 文件。对于新安装,请进入您希望包含 vendor 目录的目录。

     $ cd <parent_path_of_vendor>	
    
  2. 运行以下命令,这将更新 composer.json 文件,安装 zf2-validators-empty-or-plugin 包及其依赖项到 vendor 目录下的相应目录,并更新 composer 自动加载文件。

     $ composer require jim-moser/zf2-validators-empty-or-plugin
    

##替代方案 2:手动安装到 Vendor 目录

请注意,由于此安装方法未设置 Composer 自动加载,因此需要以其他方式设置自动加载。下面的安装说明使用 jim-moser/zf2-validators-empty-or-plugin 中的 Module.php 文件和 jim-moser/zf2-validators-empty-or-plugin-test 中的 test\bootstrap.php 文件来设置自动加载。必须将包安装到完整的 Laminas 框架 2 安装中才能使其工作。建议使用骨架 Laminas 框架应用程序。

  1. 创建 vendor 目录。

    $ mkdir vendor

  2. 下载并安装 Laminas 框架 2。

http://framework.zend.com/downloads/archives 下载 Laminas 框架 2 存档。

$ curl http://packages.zendframework.com/releases/LaminasFramework-2.4.9/LaminasFramework-2.4.9.zip

解压缩存档。

$ unzip LaminasFramework-2.4.9.zip

创建一个 vendor/ZF2 目录。

$ mkdir ZF2

将解压缩的内容移动到 vendor/ZF2 目录。

$ mv LaminasFramework-2.4.9 ZF2
  1. 使用git clone或其他方法将以下各软件包的文件从git仓库复制到vendor/<vendor_name>/<package_name>目录。
  • jim-moser/zf2-validators-empty-or

  • jim-moser/zf2-validators-empty-or-test

  • jim-moser/zf2-validators-empty-or-plugin

  • jim-moser/zf2-validators-empty-or-plugin-test

    例如,将jim-moser/zf2-validators-empty-or仓库中的文件复制到vendor/jim-moser/zf2-validators-empty-or/目录。

  1. 编辑应用程序配置文件以通知模块管理器该模块。

    本软件包提供的Module.php文件提供了配置,以便Laminas框架自动加载器可以自动加载jim-moser/zf2-validators-empty-or软件包中的类,而无需使用Composer自动加载。Laminas框架模块管理器需要了解此软件包是Laminas框架模块,以便Laminas自动加载器接收此配置。请按照以下模块管理器配置部分的说明来通知模块管理器此模块。

  2. 设置单元测试。

    jim-moser\validators-empty-or-test软件包中的phpunit.xml文件依赖于Composer自动加载,但在此处未使用。为了在模块文件中使用自动加载设置,将phpunit.xml.no_composer.dist文件重命名为phpunit.xml。

###模块管理器配置

为了使验证器插件管理器能够从本软件包接收配置,Laminas框架模块管理器需要知道此软件包是Laminas框架模块。这是通过将模块名称添加到['modules']数组中,并将模块名称和路径添加到应用配置文件config/application.config.php返回的数组的['module_listener_options']['module_paths']数组中实现的。

<?php
// config/application.config.php
return array(
	'modules' => array(
		'Application',
		'JimMoser\EmptyOrValidatorsModule',	//Add this line.
		...
	),
	'module_listener_options' => array(
		'module_paths' => array(
			'JimMoser\EmptyOrValidatorsModule' => './vendor/jim-moser/zf2-validators-empty-or'	//Add this line.
		),
	),
);

#在验证器链中使用验证器插件管理器

本软件包的Module.php文件添加了配置(请参阅config/module.config.php文件),允许验证器插件管理器通过名称获取jim-moser/zf2-validators-empty-or软件包提供的验证器实例。验证器插件管理器必须从服务管理器获取,以便接收此配置。

一些类(如Laminas/Validator/ValidatorChain、JimMoser/Validator/OrChain和JimMoser/Validator/VerboseOrChain)默认会直接使用关键字"new"创建新的Laminas/Validator/ValidatorPluginManager实例,而不是从服务管理器获取实例。直接使用关键字"new"创建的ValidatorPluginManager实例在构造过程中将不会收到应用程序配置,因此不会意识到jim-moser/zf2-validators-empty-or软件包中的验证器。您应将从中拉取的服务管理器的验证器插件管理器注入到如ValidatorChain对象等对象中,以确保使用的是完全配置的验证器插件管理器。

请注意,序列化和反序列化Laminas/Validator/ValidatorChain等对象将导致注入的验证器插件管理器被使用关键字"new"创建的实例替换。