Доктрина - шифрование с помощью слушателей dql - PullRequest
0 голосов
/ 21 октября 2010

Я пытаюсь зашифровать определенные поля базы данных, добавив вызов mysql AES_ENCRYPTAES_DECRYPT) с помощью Doctrine DQL Hooks.

для SQL SELECT В моем классе Doctrine_Record_Listener есть preDqlSelect(), который просматривает каждый параметр в полях выбора и добавляет AES_DECRYPT() для зашифрованных полей.

Но похоже, что вызов save() в классе модели доктрины вызывает только слушатель preSave() и не вызывает ни одного из слушателей preDql *.

Может кто-нибудь предложить способ заставить это работатьили лучший способ сделать это?

Спасибо

1 Ответ

0 голосов
/ 10 мая 2011

Чтобы эти обратные вызовы dql были проверены, вы должны явно включить их. Поскольку для каждого запроса добавляются небольшие накладные расходы, по умолчанию он отключен

$manager->setAttribute(Doctrine_Core::ATTR_USE_DQL_CALLBACKS, true);

Doctrine 1.2 Прослушиватели событий

...