Vitaphoto: Ловушки

Материал из YourcmcWiki
Версия от 16:51, 6 декабря 2009; VitaliyFilippov (обсуждение | вклад)

Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск

«Hooks», или «ловушки», или «точки расширения», или «добавочные процедуры» — специальные точки в коде, в которые можно встраивать вызовы дополнительных процедур без модификации кода вызывающего модуля. Таким образом достигается расширяемость приложения. Пример: MediaWiki широко использует механизм ловушек, что и привело к наличию примерно 1500 расширений для неё.

Vitaphoto 1.4 также будет содержать механизм «хуков»; в сочетании с простотой платформы Sway Solstice, теоретически, это должно дать неплохую расширяемость.

Для чего нужны хуки в Vitaphoto? Например:

  • Чтобы можно было сделать расширение «видео».
  • Чтобы можно было заменить организацию галереи в виде множества фото на иерархическую, по названиям каталогов с файлами.
  • Чтобы можно было создать дополнительную спецстраницу, выполняющую определённую функцию.
  • Чтобы можно было добавить обработчик неизвестного пространства имён в ссылках.

Первые два примера в первую очередь содержат хуки в ScaleDaemon. Идеология следующая: вся информация о файле состоит из двух частей — имени и содержимого. ScaleDaemon отслеживает их изменения. Следовательно, нужно добавить хуки:

  • ParseFileName — например, «взять путь из имени».
  • ParseFileData — например, «взять EXIF-метаданные из имени».
  • SaveFile — «сохранить EXIF в базу», «сохранить теги в базу».
  • ScaleFile — предположительно «эксклюзивная» ловушка (то есть с ровно одним обработчиком) для масштабатора (:-D) изображений.
  • DeleteFile — «удалить EXIF из базы» (хотя это можно поручить внешним ключам).