Doctrine 1.2 и Symfony 1.4 советы

Standard

Чтобы вставить несколько записей за раз, сделайте такую штуку:

но на всякий пожарный коллега здесь реализовал это через наследование Doctrine_Query. Возможно его реализация быстрее.
Как делать миграции:

  1. Измените schema.yml
  2. Запустите ./symfony doc:generate-migrations-diff
  3. ./symfony doc:migrate
  4. ./symfony doc:build —all-classes

Как предотвратить удаление записи в doctrine:

public function preDelete(Doctrine_Event $event){
$event->skipOperation();
}

Либо назначить свой Listener чтобы предотвратить удаление:

$userTable = Doctrine_Core::getTable('User');
$userTable->addRecordListener(new HydrationListener());

Doctrine Collection против array_chunk

Standard

Столкнулся с такой задачей: необходимо разбить коллекцию объектов (Doctrine) на части. Изначально подумывал использовать array_chunk, но ему на вход нужно подать массив, ок — doctrine поддерживает метод ->toArray(), но проблема в том, что toArray() превращает и коллекцию и объекты, которые в ней содержатся в массив. Можно было бы поизвращаться с Doctrine Pager, но решение уже существовало — метод getData(), к-ый надо выполнить над коллекцией. В итоге получаем массив содержащий объекты.