验证消息
每个验证器都基于Zend_Valicate提供了一个或多个信息来以防各种失败的验证,你可以把这个信息设置成你自己的信息,或者翻译已经存在的信息来使验证器返回一些不同的信息。
这些验证消息的内容可以在验证器类的开头部分找到,让我们一块看一下Zend_Validate_GreaterThan,以它作为我们的例子:
protected $_messageTemplates = array(
self::NOT_GREATER => "'%value%' is not greater than '%min%'",
);
我们可以看到这里使用常量self::NOT_GREATER作为键指向一个失败信息。它只是许多信息里的一个。
你可以通过getMessageTemplates()方法检索到所有的信息,它将返回验证器在验证期间所有可能返回的信息。
$validator = new Zend_Validate_GreaterThan();
$messages = $validator->getMessageTemplates();
你可以使用setMessage()方法设置一条在特定的错误时返回的信息。
$validator = new Zend_Validate_GreaterThan();
$validator->setMessage(
'Please enter a lower value',
Zend_Validate_GreaterThan::NOT_GREATER
);
第二个参数定义的失败信息将被覆盖,当你省去参数的时候,这个验证器所有的可能返回的失败信息将都会被设置成这个信息。
使用提前翻译好的验证信息
zend framework自带了多达45个不同的验证器,200条失败信息,翻译这些信息是个乏味的工作,为了方便,Zend
Framework已经自带了提前翻译验证信息,你可以在Zend Framework安装文件的/resources/languages这个路径下找到。
注意:使用路径
资源文件在引入库的路径之外,所有的你的翻译应该也在路径之外。
这里以把所有的验证信息翻译到德语为例,你要做的事只有粘贴下面的翻译器到Zend_Validate来使用这些资源文件。
$translator = new Zend_Translate(
array(
'adapter' => 'array',
'content' => '/resources/languages',
'locale' => $language,
'scan' => Zend_Translate::LOCALE_DIRECTORY
)
);
Zend_Validate_Abstract::setDefaultTranslator($translator);
注意:使用翻译适配器
翻译适配器Zend Framework选择了数组适配器,使它可以快速的创建并且编辑也非常简单
注意:支持的语言
这个功能还是刚刚起步,所以被支持的语言可能还不太完善,随着版本的更新,新的语言将被添加进去,可以灵活的使用已经存在的资源文件来做属于你自己的翻译。
你也可以使用这些资源文件来覆盖已经存在的翻译,以至于你不需要手动创建自己的文件。
现在验证信息的长度
有时限制一个验证信息的最大长度是必要的,例如当你的视图只允许一个最大长度为100个字符显示在一行的时候,Zend_Validate是可以自动限制返回验证信息的最大长度的。
可以用Zend_Validate::getMessageLength()来获得实际的长度,加入是-1,返回的信息将不会呗截断,这个是默认行为。
使用Zend_Validate::setMessageLength()来限制返回的信息长度,可以将它设置成你需要的任何数值,当返回的信息超出了这个长度,信息将被截断并且在后面添上‘...’代替后面的信息。
Zend_Validate::setMessageLength(100);
注意:在什么地方使用这个参数?
设置信息长度的的参数适用于所有的验证器,甚至自己定义的,只要它继承了Zend_Validate_Abstract
本文翻译自:http://framework.zend.com/manual/1.11/en/zend.validate.messages.html
设置翻译适配器还有其他方式:
$languageFile=ROOT_PATH.'/library/Fwcms/language/simpleChinese.php'//自定义文件名和路径
$translate = new Zend_Translate('array',require $languageFile, 'zh_CN');
Zend_Registry::set('Zend_Translate', $translate);
// Zend_Validate_Abstract::setDefaultTranslator($translate);
// Zend_Form::setDefaultTranslator($translate);
以上三种都可以使用。
zend Framework 还没有提供中文的翻译,下面是来自于网络的翻译,但翻译不全,也贴在下面:
return array(
"Value is required and can't be empty" => '输入值不可以为空',
"'%value%' has not only alphabetic and digit characters" => "'%value%'不是字母或数字",
"'%value%' is an empty string" => "输入值不可以为空",
"'%value%' has not only alphabetic characters" => "'%value%'包含非英文字母的字符",
"isValid" => "错误",
"'%value%' must contain between 13 and 19 digits" => "'%value%'必须是一个13到19位之间的数字",
"Luhn algorithm (mod-10 checksum) failed on '%value%'" => "Luhn algorithm (mod-10 checksum) failed on '%value%'",
"'%value%' is not between '%min%' and '%max%', inclusively" => "'%value%' 不在 '%min%' 和 '%max%'之间",
"'%value%' is not strictly between '%min%' and '%max%'" => "'%value%' 必须大于 '%min%' ,小于 '%max%'",
"'%value%' is not of the format YYYY-MM-DD" => "'%value%' 必须是类似 YYYY-MM-DD 这样的日期格式",
"'%value%' does not appear to be a valid date" => "'%value%' 是一个错误的日期",
"'%value%' does not fit given date format" => "'%value%' 日期格式错误",
"'%value%' contains not only digit characters" => "'%value%' 不是数字",
"'%value%' is not a valid email address in the basic format [email=local-part@hostname]local-part@hostname[/email]" => "这不是一个电子邮件地址",
"'%hostname%' is not a valid hostname for email address '%value%'" => "这不是一个电子邮件地址",
"'%hostname%' does not appear to have a valid MX record for the email address '%value%'" => "这不是一个电子邮件地址",
"'%localPart%' not matched against dot-atom format" => "这不是一个电子邮件地址",
"'%localPart%' not matched against quoted-string format" => "这不是一个电子邮件地址",
"'%localPart%' is not a valid local part for email address '%value%'" => "这不是一个电子邮件地址",
"'%value%' exceeds the allowed length" => "'%value%'不是一个电子邮件地址",
"'%value%' does not appear to be a float" => "'%value%'不是一个浮点数",
"'%value%' is not greater than '%min%'" => "输入值必须大于 '%min%'",
"'%value%' has not only hexadecimal digit characters" => "输入值不是一个十六进制字符串",
'Tokens do not match'=>'Tokens do not match',
'No token was provided to match against'=>'No token was provided to match against',
"'%value%' was not found in the haystack"=>"'%value%'不在可选范围之内",
"'%value%' does not appear to be an integer"=>"'%value%' 不是一个整数",
"'%value%' does not appear to be a valid IP address"=>"'%value%' 不是一个合法的IP地址",
"'%value%' is not less than '%max%'"=>"输入值必须小于 '%max%'",
"'%value%' does not match against pattern '%pattern%'"=>"'%value%' 不符合输入规则 '%pattern%'",
"'%value%' is less than %min% characters long"=>"'%value%' 字符长度小于 %min% 位",
"'%value%' is greater than %max% characters long"=>"'%value%' 字符长度超过 %max% 位"
);
分享到:
相关推荐
总结,`Zend_Validate` 是 Zend Framework 中用于数据验证的强大工具,提供了丰富的预定义验证器,同时也支持自定义验证器和验证器链。通过熟练掌握 `Zend_Validate`,可以有效地确保应用程序接收到的数据质量和安全...
《Test_Validate_Framework【验证框架】:构建高效可靠的测试体系》 在软件开发过程中,验证框架扮演着至关重要的角色。Test_Validate_Framework 是一个专为软件测试设计的框架,旨在提高测试的效率、准确性和可...
•Zend_Validate •Zend_Version •Zend_View •Zend_Wildfire •Zend_XmlRpc •ZendX_Console_Process_Unix •ZendX_JQuery •Zend Framework Requirements •Introduction •Zend Framework Migration ...
- **Zend_Validate**:数据验证,确保输入数据的正确性。 **7. 扩展性和模块化** - Zend Framework鼓励模块化开发,允许开发者创建自己的模块或使用社区开发的第三方模块。 **8. 性能优化** - ZF提供了各种策略...
**标题:“Zend Framework中文手册”** **描述:**这份资源是一个详尽的PDF文档,提供了对 Zend Framework 的清晰中文解释。它由 Zend Technologies Inc. 创建并持有版权,更新日期为2009年2月27日。这表明文档内容...
Zend_Validate 和 Zend_Filter 两个组件分别用于数据验证和数据过滤,确保输入数据的准确性和安全性。开发者可以自定义验证规则和过滤器,以适应不同的应用场景。 **8. 安全性** 安全是 Zend Framework 的重要考量...
5. **与其他验证器的结合**:`Zend_Validate`允许你链式使用多个验证器,这样可以在一次验证过程中检查多个条件。例如,你可以先使用`Zend_Validate_InArray`,再使用`Zend_Validate_Regex`来确保输入符合特定格式。...
7. **表单验证(Form Validation)**: Zend_Validate 类库提供了丰富的验证规则,用于确保用户输入的数据满足业务需求。 8. **缓存(Caching)**: Zend_Cache 提供了多种缓存策略,如文件、内存、数据库等,可优化性能...
1. **定义验证规则**:`oarepo_validate`允许开发者通过JSON Schema或者自定义验证函数来定义数据验证规则。JSON Schema是一种JSON格式的规范,用于定义JSON数据结构和验证规则,使得数据验证更加直观和标准。 2. *...
`json_validate` 涉及的是验证JSON格式数据是否符合标准的过程,这对于确保数据的准确性和可靠性至关重要。在开发过程中,我们经常需要对接收到的JSON数据进行校验,以防止因数据格式错误导致的程序异常。 `json_...
6. **验证时机**:开发者可以设置验证触发的时机,如`onsubmit`(提交时验证)、`onkeyup`(按键抬起时验证)等。 7. **分组验证**:使用`groups`选项,可以将多个字段作为一个组进行验证,简化验证逻辑。 在实际...
1. Introduction to Zend Framework 1.1. 概述 1.2. 安装 2. Zend_Acl 2.1. 简介 2.1.1. 关于资源(Resource) 2.1.2. 关于角色(Role) 2.1.3. 创建访问控制列表(ACL) 2.1.4. 注册角色(Role) 2.1.5. 定义访问...
**Zend Framework 中文手册** Zend Framework 是一个基于 Model-View-Controller (MVC) 设计模式的开源 PHP Web 应用程序开发框架。这个框架强调可重用性、组件化和最佳实践,以促进高效、稳定的开发。中文手册是...
3. **资源依赖验证**:验证资源之间的依赖关系是否正确设置,确保资源的创建顺序不会引起冲突。 4. **插件兼容性**:`terraform_validate`会检测配置中指定的Terraform提供者版本与本地安装的版本是否兼容,防止因...
在IT行业中,网页验证是确保安全性的重要一环,特别是在用户登录、注册等操作时,防止恶意自动化的机器人或脚本进行攻击。JSP (JavaServer Pages) 是一种动态网页技术,常常被用来创建包含服务器端逻辑的网页。在这...
同时,Zend_Filter和Zend_Validate提供数据过滤和验证,防止SQL注入等安全问题。 10. **文件处理**:通过Zend_File_Transfer,可以上传、下载文件,验证大小、类型,并进行重命名等操作。 **学习资源与社区支持** ...
初始化 jQuery Validate 的验证器,并设置相应的验证规则和提示信息。 ```javascript $(document).ready(function() { $("#formId").validate({ rules: { // 验证规则定义 }, messages: { // 提示信息定义 ...
在本教程中,我们将探讨如何使用Zend Framework中的`Zend_Form`组件来...此外,自定义验证器消息使得在不同语言环境下也能提供用户友好的错误提示。通过学习和掌握`Zend_Form`,你可以更高效地构建健壮的Web应用程序。
Zend Framework 提供了强大的表单处理和验证功能,如 Zend_Form 和 Zend_Validate,可以轻松创建复杂的表单,并对用户输入的数据进行验证。 **8. 服务端和客户端认证** Zend Framework 包含了 Zend_Auth 和 Zend_...