Компонент ZendCaptcha может принимать различные формы, в том числе задавать логические вопросы, генерировать искаженные шрифты, и передавать несколько изображений, установив между ними связь. ZendCaptcha имеет целью обеспечить разнообразие серверных решений, которые могут быть использованы либо в автономном режиме либо в сочетании с ZendForm компонентой.
Элемент Captcha имеет более одного поля, которые рендерятся друг за другом. Встроеный генератор изображений каптч (ZendCaptchaImage.php) использует свой собственный хелпер (ZendFormViewHelperCaptchaImage.php) для создания изображения. Так-же, в ZendCaptchaImage.php находится метод 'getHelperName'. Этот метод передает имя хелпера для рендеринга изображения каптчи. По умолчанию 'getHelperName' передает 'captcha/image' — экземпляр класса ZendFormViewHelperCaptchaImage.php. Если углубиться с помощью дебаггера, можно увидеть, что в свойстве экземпляра phpRenderer::__helpers, в invokablesClasses располагается хелпер 'captchaimage'. Это и есть ZendFormViewHelperCaptchaImage.php, упомянутый ранее. Грубо говоря — вы просто создаете изображение, а всё остальное делает за вас рендерер используя хелпер, хотя такое положение вещей устраивает не всех.
Читать полностью »