Skip to content

Ru:1.0to1.1

AlexeyDsov edited this page Jul 18, 2012 · 20 revisions

Миграция с 1.0 на 1.1

Сейчас пока 1.1 это мастер. По мере дополнения новыми фичами статья будет расширяться.

Изменения в BC

  1. Переименование классов Memcached -> SocketMemcached

Список новых фич

  1. Добавлен более статический вариант Enumeration - Enum. Для перехода на него нужно изменить в наследнике параметр protected $names = array(...); на $protected static $names = array(). API Класса тот же самый что и Enumeration + дополнен несколькими статическими методами, которых так не хватало. Требует php 5.3. Класс Enumeration никуда не пропал.
  2. Переименования в классах работающих с мемкешом. Решает проблему пересечения имен с php классом Memcached
  3. В DB добавлена работа с savepoint'ами.
  4. Добавлены классы InnerTransaction и InnerTransactionWrapper, для упрощения создания вложенных транзакций на savepoint'ах. Т.е. позволяет не задумываться - находимся ли мы в текущий момент внутри транзакции или нет.
  5. Переписано раскешивание, теперь оно работает через специальные классы Uncachers. Это позволило сделать корректным раскешивание внутри транзакции - оно происходит после "COMMIT;" в базе данных. Само же кэширование внутри транзакции использует теперь всегда RuntimeMemory, что может увеличить число запросов в базу, но позволяет не портить общий кэш незакомиченными данными.
  6. Улучшена логика сравнения старого и нового объектов в *DAO::merge() + сама логика сравнения вынесена большей частью в AbstractProtoClass и LightMetaProperty

Список еще не закончен.

Планируемые но не вмерженные фичи

  1. Обновление CurlHttpClient
  2. TimestampTZ
  3. Использование InnerTransaction внутри onPHP кода.
Clone this wiki locally