Введение в Zend Framework

 Learning Zend Framework

appendix

 Zend Framework Reference


  • Zend_Gdata
  • Zend_Http
  • Zend_InfoCard
  • Zend_Json
  • Zend_Layout
  • Zend_Ldap
  • Zend_Loader
  • Zend_Locale
  • Zend_Log
  • Zend_Mail
  • Zend_Markup
  • Zend_Measure
  • Zend_Memory
  • Zend_Mime
  • Zend_Navigation
  • Zend_Oauth
  • Zend_OpenId
  • Zend_Paginator
  • Zend_Pdf
  • Zend_ProgressBar
  • Zend_Queue
  • Zend_Reflection
  • Zend_Registry
  • Zend_Rest

  • Zend_Search_Lucene
  • Zend_Serializer
  • Zend_Server
  • Zend_Service
  • Zend_Session
  • Zend_Soap
  • Zend_Tag
  • Zend_Test
  • Zend_Text
  • Zend_TimeSync
  • Zend_Tool
  • Zend_Tool_Framework
  • Zend_Tool_Project
  • Zend_Translate
  • Zend_Uri
  • Zend_Validate
  • Zend_Version
  • Zend_View
  • Zend_Wildfire
  • Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Ttranslation 27.4% Update 2010-11-28 - Revision 23238 - Version ZF 1.11.x

    18.3. Адаптеры CAPTCHA

    Следующие адаптеры поставляются с Zend Framework по умолчанию.

    18.3.1. Zend_Captcha_Word

    Zend_Captcha_Word -- абстрактный адаптер, реализующий функционал, используемый большинством других адаптеров. Данный адаптер предоставляет мутаторы для задания длины слова, сессии, времени жизни токена, объекта пространства имён сессии, в котором будет храниться токен и класс сессии, если вы не используете Zend_Session_Namespace. Zend_Captcha_Word реализует логику проверки.

    По умолчанию, длина слова -- 8 символов, таймаут сессии -- 5 минут и для хранения данных CAPTCHA используется Zend_Session_Namespace (используется пространство имён "Zend_Form_Captcha_<captcha ID>").

    В дополнении к методам, требуемым интерфейсом Zend_Captcha_Adapter, Zend_Captcha_Word реализует следующие методы:

    • setWordLen($length) и getWordLen() задаёт и получает длину генерируемого "слова" в символах.

    • setTimeout($ttl) и getTimeout() задаёт и получает время жизни сессионного токена в секундах.

    • setUseNumbers($numbers) и getUseNumbers() указывают, будут ли использоваться цифры при генерации "слова".

    • setSessionClass($class) и getSessionClass() задаёт и получает класс, реализующий функциональность Zend_Session_Namespace для хранения сессионного токена и "слова" между клиентскими запросами.

    • getId() возвращает текущий идентификационный токен.

    • getWord() возвращает сгенерированное ранее слово. Если слово ещё не было сгенерировано, оно будет автоматически сгенерировано.

    • setSession(Zend_Session_Namespace $session) задаёт объект сессии для хранения токена и слова между клиентскими запросами. getSession() возвращает текущий объект сессии.

    Все словесные CAPTCHA могут принимать массив параметров в конструкторе. Параметры можно передать через метод setOptions(). Вы так же можете передать объект Zend_Config методу setConfig(). По умолчанию используются параметры wordLen, timeout и sessionClass. Каждая конкретная реализация CAPTCHA может определять дополнительные параметры.

    [Замечание] Замечание

    Zend_Captcha_Word -- абстрактный класс и не может использоваться напрямую.

    18.3.2. Zend_Captcha_Dumb

    Адаптер Zend_Captch_Dumb генерирует случайную строку, которая должна быть набрана в обратном порядке. Никогда не используйте этот адаптер на реальных проектах, так как его легко взломать. Его следует использовать только в целях тестирования. Адаптер наследует Zend_Captcha_Word.

    18.3.3. Zend_Captcha_Figlet

    Адаптер Zend_Captcha_Figlet aнаследует Zend_Text_Figlet и отображает figlet пользователю.

    Параметры, передаваемые в конструкторе так же передаются объекту Zend_Text_Figlet. Список возможных опций можно посмотреть в разделе о Zend_Text_Figlet.

    18.3.4. Zend_Captcha_Image

    Адаптер Zend_Captcha_Image отрисовывает сгенерированное слово на картинке с искажением и зашумлением, затрудняющими автоматическое распознавание. Адаптер требует расширение GD, скомпилированное с поддержкой шрифтов в формате TrueType или Freetype. На текущий момент адаптер генерирует картинки только в формате PNG.

    Zend_Captcha_Image наследует Zend_Captcha_Word, и предоставляет следующие дополнительные методы:

    • setExpiration($expiration) и getExpiration() задаёт и получает максимальное время жизни файла с изображением. Обычно оно больше времени жизни сессии. Сборка мусора осуществляется каждый раз, когда используется объект CAPTCHA. Время жизни задаётся в секундах.

    • setGcFreq($gcFreq) и getGcFreg() задаёт и получает периодичность сборки мусора. Сборка запускается через каждые 1/$gcFreq запросов. По умолчанию 100.

    • setFont($font) и getFont() задаёт и получает шрифт, которым отрисовывается слово. Переменная $font должна содержать полный квалифицированный путь к файлу со шрифтом. Этот параметр обязателен. CAPTCHA выбросит исключение при попытке отрисовать изображение без указанного файла со шрифтом.

    • setFontSize($fsize) и getFontSize() задаёт и получает размер шрифта в пикселях. По умолчанию 24.

    • setHeight($height) и getHeight() задаёт и получает высоту генерируемого изображения в пикселях. По умолчанию 50.

    • setWidth($width) и getWidth() задаёт и получает ширину генерируемого изображения в пикселях. По умолчанию 200.

    • setImgDir($imgDir) и getImgDir() задаёт получает директорию для хранения сгенерированных изображений CAPTCHA. По умолчанию "./images/captcha/", относительно загрузочного скрипта.

    • setImgUrl($imgUrl) и getImgUrl() задаёт и получает относительный путь к CAPTCHA для использования в HTML верстке. По умолчанию "/images/captcha/".

    • setSuffix($suffix) и getSuffix() задаёт и получает окончание имени файла CAPTCHA. По умолчанию ".png". Примечание: смена этого значения не изменит формат изображения.

    • setDotNoiseLevel($level) и getDotNoiseLevel(), совместно с setLineNoiseLevel($level) и getLineNoiseLevel(), контролируют зашумлённость изображения случайными точками и линиями. $level определяет количество точек и линий. По умолчанию используется 100 точек и 5 линий. Шумы добавляются в два этапа -- до и после искажения картинки.

    Все вышеперечисленные параметры могут быть заданы в конструкторе. Нужно только убрать приставку "set" из названия соответствующего метода и привести первую букву к нижнему регистру. Например: "suffix", "height", "imgUrl", и т. д.

    18.3.5. Zend_Captcha_ReCaptcha

    Адаптер Zend_Captcha_ReCaptcha наследует Zend_Service_ReCaptcha. Реализует следующие методы:

    • setPrivKey($key) и getPrivKey() задаёт и получает секретный ключ, используемый в сервисе ReCaptcha. Ключ должен задаваться во время конструирования объекта, но может быть изменён в любой момент.

    • setPubKey($key) и getPubKey() задаёт и получает публичный ключ для использования в сервисе ReCaptcha. Ключ должен быть задан во время конструирования объекта, но может быть изменён в любой момент.

    • setService(Zend_Service_ReCaptcha $service) и getService() задаёт и получает объект сервиса ReCaptcha.

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...