1 заметка с тегом: Data Source Chaining
1 заметка с тегом

Data Source Chaining

Связывание источников данных

Связывание источников данных позволяет организовать фильтрацию данных выводимых источником данных на основании данных от другого источника данных.

Обзор

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

Использование

Источники данных могут быть связаны за два простых шага: у основного источника данных в настройках должен быть настроен параметр вывода необходимых полей, а у зависимого источника данных данный параметр используется в качестве фильтра.

Связь между источниками данных может быть по типу один-ко-многим в любом направлении. Несколько зависимых источников данных могут быть связаны с одним главным источником, и наоборот, один зависимый источник данных может зависеть от нескольких главных источников данных.

The Big Picture

Связывание источников данных является очень важной техникой даже для простых проектов, но часто упускается новичками, потому что имеются обходные пути. Например, можно выбирать все записи в XML, а уже затем, при помощи XSLT выбирать лишь необходимые данные. Но это плохая практика из-за значительных затрат времени на генерацию XML данных. При использовании связывания вы значительно ускорите работу систему и снизите нагрузку при обработке данных и генерации XML.

Дополнительная информация

Symphony автоматически создаёт зависимости для источников данных созданых через панель упралвения администратора. Для пользовательских источников данных вы тоже можете создать зависимость. Например, если пользовательский источник данных нахывается «Secondary» и связывается с источником данных «Primary», то вам необходимо дописать код функции __construct():

$this->_dependencies = array(’$ds-primary’);