Zend Framework 2 рдореЗрдВ рдХреИрдкреНрдЪрд╛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░реЗрдВ

Zend \ Captcha рдШрдЯрдХ рд╡рд┐рднрд┐рдиреНрди рд░реВрдк рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рд╢реНрди рдкреВрдЫрдирд╛, рд╡рд┐рдХреГрдд рдлрд╝реЙрдиреНрдЯ рдмрдирд╛рдирд╛ рдФрд░ рдХрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛, рдЙрдирдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред Zend \ Captcha рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд░реНрд╡рд░ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдлрд╝рд▓рд╛рдЗрди рдпрд╛ Zend \ Form рдШрдЯрдХ рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреИрдкреНрдЪрд╛ рддрддреНрд╡ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдлрд╝реАрд▓реНрдб рд╣реИрдВ рдЬреЛ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреИрдкреНрдЪрд╛ рдЫрд╡рд┐ рдЬрдирд░реЗрдЯрд░ ( Zend \ Captcha \ Image.php ) рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд╣рд╛рдпрдХ ( Zend \ Form \ View \ Helper \ Captcha \ Image.php ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Zend \ Captcha \ Image.php рдореЗрдВ рд╡рд┐рдзрд┐ 'getHelperName' рд╣реИред рдХреИрдкреНрдЪрд╛ рдЫрд╡рд┐ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд┐рдзрд┐ рд╕рд╣рд╛рдпрдХ рдирд╛рдо рд╕реЗ рдЧреБрдЬрд░рддреА рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, 'getHelperName' 'рдХреИрдкреНрдЪрд╛ / рдЫрд╡рд┐' рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ - Zend \ Form \ View \ Helper \ Captcha \ Image.php рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред рдпрджрд┐ рдЖрдк рдбреАрдмрдЧрд░ рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдбрд┐рд▓реАрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ phpRenderer :: __ рд╣реЗрд▓реНрдкрд░реНрд╕ , рдХреИрдкреНрдЯрд░ рд╣реЗрд▓реНрдкрд░ invokablesClasses рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рдпрд╣ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд Zend \ Form \ View \ Helper \ Captcha \ Image.php рд╣реИ ред рдореЛрдЯреЗ рддреМрд░ рдкрд░, рдЖрдк рдмрд╕ рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рд░реЗрдВрдбрд░рд░ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕реНрдерд┐рддрд┐ рд╕рднреА рдХреЗ рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рд╣реИред

рдЬрдм рдЖрдк рдХреИрдкреНрдЪрд╛ рдлреЙрд░реНрдо рдПрд▓рд┐рдореЗрдВрдЯ ( Zend \ Form \ Element \ Captcha.php ) рдмрдирд╛рддреЗ рд╣реИрдВ , рддреЛ рдЖрдк рдХреИрдкреНрдЪрд╛ рдЗрдореЗрдЬ ( Zend \ Captcha \ Image.php ) рдЗрд╕ рдПрд▓рд┐рдореЗрдВрдЯ рдХреЛ рдкрд╛рд╕ рдХрд░ рджреЗрддреЗ рд╣реИрдВред рдХреИрдкреНрдЪрд╛ рдлреЙрд░реНрдо рддрддреНрд╡, рдмрджрд▓реЗ рдореЗрдВ, рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рд╕рд╣рд╛рдпрдХ ( Zend \ Form \ View \ Helper \ FormCaptcha.php ) рднреА рд╣реИред рдЗрд╕ рд╕рд╣рд╛рдпрдХ рдХреА рд░реЗрдВрдбрд░ рд╡рд┐рдзрд┐ рдореЗрдВ, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреИрдкреНрдЪрд╛ рдЗрдореЗрдЬ ( Zend \ Captcha \ Image.php ) ElementInterface рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднрд░реА рд╣реБрдИ рд╣реИ:

//Zend\Form\View\Helper\FormCaptcha.php public function render(ElementInterface $element) { $captcha = $element->getCaptcha(); 


рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╕рд╣рд╛рдпрдХ рдХреЛ 'getHelperName' рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 $helper = $captcha->getHelperName(); 


рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ PhpRenderer рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рджреГрд╢реНрдп рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИ:

 $helper = $renderer->plugin($helper); return $helper($element); 


рд╣рдореЗрдВ cha рдХреИрдкреНрдЪрд╛ рдлреЙрд░реНрдо рдПрд▓рд┐рдореЗрдВрдЯ рдФрд░ рдЙрд╕рдХреЗ рд╣реЗрд▓реНрдкрд░ тАЩрдФрд░ clearly рдХреИрдкреНрдЪрд╛ рдЗрдореЗрдЬ рднреА рдЕрдкрдиреЗ рд╣реЗрд▓реНрдкрд░тАЩ рдХреЗ рдмреАрдЪ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рднреЗрдж рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╣рдо 'рдХреИрдкреНрдЪрд╛ рдЗрдореЗрдЬ' рдХреЛ 'рдХреИрдкреНрдЪрд╛' рдлреЙрд░реНрдо рдПрд▓рд┐рдореЗрдВрдЯ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╣реЗрд▓реНрдкрд░ рд╣реИред 'рдХреИрдкреНрдЪрд╛ рдлреЙрд░реНрдо рдПрд▓рд┐рдореЗрдВрдЯ' рдХрд╛ рд░реЗрдВрдбрд░ рдореЗрдердб 'рдХреИрдкреНрдЪрд╛ рдЗрдореЗрдЬ' рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрдореНрдмреЗрдб рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЗрдореЗрдЬ рдХреЛ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╡реНрдпреВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЗрд▓реНрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛ред рдЖрдкрдХреЛ рдмрд╕ 'рдХреИрдкреНрдЪрд╛ рдЗрдореЗрдЬ' рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╣реЗрд▓реНрдкрд░ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╕рдВрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рджреГрд╢реНрдп рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ Zend \ Captcha \ Image.php рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рд╣рдорд╛рд░рд╛ рдирдпрд╛ рд╕рд╣рд╛рдпрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗ, рдФрд░ рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╣реАрдВред

рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдХреБрдЫ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВ:
Zend \ Form \ View \ Helper \ Captcha \ Image.php рдХреИрдкреНрдЪрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП% s% s% s рдХреЗ рд░реВрдк рдореЗрдВ рдкреИрдЯрд░реНрди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ:

 $pattern = '%s%s%s'; 


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рд╣реИ рд╣рдорд╛рд░реЗ рдХрд╕реНрдЯрдо рд╣реЗрд▓реНрдкрд░ рдЕрдкрдиреЗ рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рдеред рдЖрдЗрдП рдЗрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрдирд╛рдПрдВ:

 //module\Application\src\Application\View\Helper\Form\Captcha\ViewHelperCaptcha.php <?php namespace Application\View\Helper\Form\Captcha; use Zend\Form\View\Helper\Captcha\AbstractWord; use Application\View\Helper\Form\Captcha\CustomCaptcha as CaptchaAdapter; use Zend\Form\ElementInterface; use Zend\Form\Exception; class ViewHelperCaptcha extends AbstractWord { /** * Override * * Render the captcha * * @param ElementInterface $element * @throws Exception\DomainException * @return string */ public function render(ElementInterface $element) { //         . $this->setSeparator('') $captcha = $element->getCaptcha(); if ($captcha === null || !$captcha instanceof CaptchaAdapter) { throw new Exception\DomainException(sprintf( '%s requires that the element has a "captcha" attribute of type Zend\Captcha\Image; none found', __METHOD__ )); } //     (  600). $captcha->setExpiration(10); //    (  10).        . $captcha->setGcFreq(1); $captcha->generate(); $imgAttributes = array( 'width' => $captcha->getWidth(), 'height' => $captcha->getHeight(), 'alt' => $captcha->getImgAlt(), 'src' => $captcha->getImgUrl() . $captcha->getId() . $captcha->getSuffix(), ); $closingBracket = $this->getInlineClosingBracket(); $img = sprintf( '<img %s%s', $this->createAttributesString($imgAttributes), $closingBracket ); $position = $this->getCaptchaPosition(); $separator = $this->getSeparator(); $captchaInput = $this->renderCaptchaInputs($element); //   $pattern = '<div class="captcha_image"> %s</div> %s<div class="captcha_input"> %s</div>' if ($position == self::CAPTCHA_PREPEND) { return sprintf($pattern, $captchaInput, $separator, $img); } return sprintf($pattern, $img, $separator, $captchaInput); } } 


рд╣рдорд╛рд░рд╛ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рдорд╛рдореВрд▓реА рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде Zend \ Form \ View \ Helper \ Captcha \ Image.php рд╡рд░реНрдЧ рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИ ред рд╣рдорд╛рд░рд╛ рд╕рд╣рд╛рдпрдХ рдореВрд▓ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ рдЫрд╡рд┐ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Zend \ Captcha \ Image.php рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ Zend \ Captcha \ Image.php рдПрдХ рддрд░реАрдХрд╛ 'getHelperName' рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╣рд╛рд░реНрдб-рдХреЛрдбрд┐рдд рд╕рд╣рд╛рдпрдХ рдирд╛рдо 'рдХреИрдкреНрдЪрд╛ / рдЗрдореЗрдЬ' рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдлрд╝реЙрд░реНрдо рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреЗрдВрдкрд░рд░ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдмрд╕ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ред рд╣рдорд╛рд░реЗ рдХрд╕реНрдЯрдо рд╣реЗрд▓реНрдкрд░ рдХреЛ phpRenderer рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдПрдХ рдирдИ рдХреИрдкреНрдЪрд╛ рдЗрдореЗрдЬ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдореВрд▓ Zend \ Captcha \ Image.php рдХреНрд▓рд╛рд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдЧреА рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╕рд╣рд╛рдпрдХ рдХрд╛ рдирд╛рдо рд╕реЗрдЯ рдХрд░рдХреЗ 'getHelperName' рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдЧрд╛ред

рддреЛ, рдЪрд▓рд┐рдП рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдХреЛ phpRenderer invokables рд╣реЗрд▓реНрдкрд░реНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕реЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ редconfig.php:

 //module\Application\config\module.config.php ... 'view_helpers' => array( 'invokables' => array( 'viewhelpercaptcha' => 'Application\View\Helper\Form\Captcha\ViewHelperCaptcha', ), ), 


рдЕрдЧрд▓рд╛ рдХрджрдо рдХреИрдкреНрдЪрд╛ рдЗрдореЗрдЬ рдмрдирд╛рдирд╛ рд╣реИ рдЬреЛ рдореЙрдбреНрдпреВрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣рдорд╛рд░реЗ рд╕рд╣рд╛рдпрдХ рдХреЛ phpRenderer invokables рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░реЗрдЧрд╛ред рдкреВрд░реЗ рд╡рд░реНрдЧ Zend \ Captcha \ Image.php рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реЗ рдХрд╕реНрдЯрдо рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ 'getHelperName' рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдирд╛рдо рджреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЙрдбреНрдпреВрд▓ \ Application \ src \ Application \ View \ Helper \ Form \ Captcha рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ CustomCaptcha.php ред рд╣рдо рдореВрд▓ Zend \ Captcha \ Image.php рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ 'getHelperName' рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ 'viewhelpercaptcha' рд╕рд╣рд╛рдпрдХ рдХреЛ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рдПред рдпрд╣ $ рдореИрд╕реЗрдЬрдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдореЗрдВ рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЕрдкрдиреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ред

 //module\Application\src\Application\View\Helper\Form\Captcha\CustomCaptcha.php <?php namespace Application\View\Helper\Form\Captcha; // ,   . use Zend\Captcha\Image as CaptchaImage; //  ,      . class CustomCaptcha extends CaptchaImage { protected $messageTemplates = array( self::MISSING_VALUE => ' ', self::MISSING_ID => ' ID ', self::BAD_CAPTCHA => '  ', public function getHelperName() { return 'viewhelpercaptcha'; } } 


рдЖрдЦрд┐рд░реА рдЪреАрдЬ рдЬреЛ рд╣рдореЗрдВ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рд╡рд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА CustomCaptcha рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝реЙрд░реНрдо рдореЗрдВ рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреЛ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ: рдПрдХ рдлрд╝реЙрдиреНрдЯ (zf2folder / data / рдлрд╝реЙрдиреНрдЯреНрд╕) рдХреЗ рд▓рд┐рдП, рдЬреЛ рдХреИрдкреНрдЪрд╛ рд╢рдмреНрдж рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдХреИрдкреНрдЪрд╛ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ (zf2folder / public / img / captcha) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдлрд╝реЙрдиреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, * .ttf рдлрд╝реЙрдиреНрдЯ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП arial.ttf рдХреЙрдкреА рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рдлреЙрд░реНрдо рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ:

 <?php namespace Album\Form; use Zend\Form\Form; use Application\Form\View\Helper\Captcha\CustomCaptcha; class AlbumForm extends Form { public function __construct($name = null) { //    parent::__construct('album'); $this->setAttribute('method', 'post'); //    ... //    Captcha $dirdata = './data'; //  CustomCaptcha  $captchaImage = new CustomCaptcha(array( 'font' => $dirdata . '/fonts/arial.ttf', 'width' => 120, 'height' => 60, 'fsize' => 20, 'wordLen' => 5, 'dotNoiseLevel' => 25, 'lineNoiseLevel' => 2 )); //     $captchaImage->setImgDir('public/img/captcha/'); //      $captchaImage->setImgUrl('/img/captcha/'); $captchaImage->setImgAlt('   ?'); //   Captcha    CustomCaptcha,   $this->add(array( 'type' => 'Zend\Form\Element\Captcha', 'name' => 'captcha', 'options' => array( 'captcha' => $captchaImage, ), 'attributes' => array( 'class' => 'some_class', ) )); $this->add(array( 'name' => 'submit', 'attributes' => array( 'type' => 'submit', 'value' => 'Go', 'id' => 'submitbutton', ), )); } } 


рд╣рдорд╛рд░реЗ рдХреИрдкреНрдЪрд╛ рдХреЗ рдПрдХ рддрддреНрд╡ рдХреЛ рд╡реНрдпреВ рдлрд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ

 echo $this->formRow($form->get('captcha')) . PHP_EOL; 


рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк HTML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЕрдм рдЫрд╡рд┐ рдФрд░ рдХреИрдкреНрдЪрд╛ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб divs рдореЗрдВ рд▓рд┐рдкрдЯреЗ рд╣реБрдП рд╣реИрдВред рд╣рдореЗрдВ рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдбрд┐рдЬрд╛рдЗрди рдорд┐рд▓рд╛ред

рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕реНрд░реЛрдд:
framework.zend.com/manual/2.2/en/modules/zend.captcha.intro.html
framework.zend.com/manual/2.2/en/modules/zend.captcha.operation.html
framework.zend.com/manual/2.2/en/modules/zend.captcha.adapters.html
framework.zend.com/manual/2.2/en/user-guide/forms-and-actions.html
zendtemple.blogspot.com/2012/12/zend-framework-2-zf2-creating-view.html
samsonasik.wordpress.com/2012/09/12/zend-framework-2-using-captcha-image-in-zend-form

Source: https://habr.com/ru/post/In183232/


All Articles