Zend_Validate-WritingValidators.xml 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <sect1 id="zend.validate.writing_validators">
  2. <title>Написание валидаторов<!--Writing Validators--></title>
  3. <para>
  4. Zend_Validate предоставляет набор наиболее часто используемых валидаторов, но разработчики часто сталкиваются с такими ситуациями, когда требуется написание своих валидаторов. Написание своих валидаторов облегчается реализацией интерфейса <code>Zend_Validate_Interface</code>.
  5. <!--
  6. Zend_Validate supplies a set of commonly needed validators, but inevitably, developers will wish to
  7. write custom validators for their particular needs. The task of writing a custom validator is
  8. facilitated by implementing <code>Zend_Validate_Interface</code>.
  9. -->
  10. </para>
  11. <para>
  12. <code>Zend_Validate_Interface</code> определяет два метода: <code>isValid()</code> и <code>getMessages()</code>, которые могут быть реализованы своими классами. Объект, реализующий данный интерфейс, может быть добавлен в цепочку валидаторов через метод <code>Zend_Validate::addValidator()</code>.
  13. <!--
  14. <code>Zend_Validate_Interface</code> defines two methods, <code>isValid()</code> and
  15. <code>getMessages()</code>, that may be implemented by user classes. An object that implements this
  16. interface may be added to a validator chain with <code>Zend_Validate::addValidator()</code>.
  17. -->
  18. </para>
  19. <para>
  20. Следующий пример демонстрирует, как можно писать свои валидаторы:
  21. <!--
  22. The following example demonstrates how a custom validator might be written:
  23. -->
  24. <programlisting role="php"><![CDATA[<?php
  25. require_once 'Zend/Validate/Interface.php';
  26. class MyValidator implements Zend_Validate_Interface
  27. {
  28. protected $_messages = array();
  29. public function isValid($value)
  30. {
  31. $this->_messages = array();
  32. // нахождение результата проверки $requirement
  33. if (!$requirement) {
  34. $this->_messages[] = "Reason validation failed";
  35. return false;
  36. }
  37. return true;
  38. }
  39. public function getMessages()
  40. {
  41. return $this->_messages;
  42. }
  43. }
  44. ?>]]></programlisting>
  45. </para>
  46. <para>
  47. Добавление экземпляра только что написанного класса валидатора в цепочку валидаторов:
  48. <!--
  49. To add an instance of the above validator to a validator chain:
  50. -->
  51. <programlisting role="php"><![CDATA[<?php
  52. $validatorChain = new Zend_Validate();
  53. $validatorChain->addValidator(new MyValidator());
  54. ?>]]></programlisting>
  55. </para>
  56. </sect1>
  57. <!--
  58. vim:se ts=4 sw=4 et:
  59. -->