NewVision WEB-development Team Blog

Archive for 'doctrine'

Doctrine DQL и его хитрый Limit-subquery-алгоритм

Иногда DQL подкидывает замечательные сюрпризы в генерируемых SQL запросах. В такие моменты начинаешь жалеть, что не прочитал доки от корки до корки))

Symfony: Изменение прав (credentials) пользователя без релогина используя sfDoctrineGuardPlugin

Регистрируясь в нашей системе пользователь должен подтвердить свой email. Как только пользователь подтверждает свой email его с чистой совестью можно добавить в группу «client» и разрешить использовать все возможности нашей системы не требуя перелогиниться.
И вот вчера, решая эту простую задачу я столкнулся с очень любопытным явлением, о котором я бы хотел рассказать.

Визуализация репозиториев Symfony & Doctrine с помощью Codeswarm & Gource

В продолжении статьи: CodeSwarm – визуализация коммитов репозитория, сделал парочку видео с репозиториями наших основных средств разработки: Symfony и Doctrine.

Doctrine_Query::whereIn c пустым массивом в качестве параметра

Если в update присутствует условие whereIn с пустым массивом в качестве параметра, то оно не учитывается при запросе.
Например, функция активации пользователей:
public function activateUsers(array $user_ids)
{
  Doctrine_Query::create()
    ->update("User u")
    ->set("u.is_active", 1)
    ->whereIn("u.id" , $user_ids)
    ->execute();
}
Если вызвать эту функцию с пустым массивом $user_ids, то проапдейтятся все записи из таблицы пользоватей (т.е. им проставиться is_active [...]

Подготовка данных для сериализации Doctrine Form

Doctrine forms – дополнительная прослойка в symfony form фреймверке для работы с doctrine ORM. Она позволяет легко создавать формы для редактирования объектов базы данных.
Ниже схематически представлена простейшая форма, отвечающая за редактирование объекта, в данном случае – профайла пользователя.