吉姆-莫泽 / zf2-validators-empty-or-plugin
jim-moser/zf2-validators-empty-or 插件管理器配置,用于配置 Laminas 框架 2 验证器插件管理器(Laminas/Validator/ValidatorPluginManager)以使用来自 jim-moser/zf2-validators-empty-or 包的验证器。
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
- 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 包的 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 安装
-
对于现有的 Laminas 框架安装,请进入 vendor 目录的父目录。此目录应包含现有的 composer.json 文件。对于新安装,请进入您希望包含 vendor 目录的目录。
$ cd <parent_path_of_vendor>
-
运行以下命令,这将更新 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 框架应用程序。
-
创建 vendor 目录。
$ mkdir vendor
-
下载并安装 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
- 使用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/目录。
-
编辑应用程序配置文件以通知模块管理器该模块。
本软件包提供的Module.php文件提供了配置,以便Laminas框架自动加载器可以自动加载jim-moser/zf2-validators-empty-or软件包中的类,而无需使用Composer自动加载。Laminas框架模块管理器需要了解此软件包是Laminas框架模块,以便Laminas自动加载器接收此配置。请按照以下模块管理器配置部分的说明来通知模块管理器此模块。
-
设置单元测试。
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"创建的实例替换。