Пользователь
Скидка до 50% на все продукты JetBrains
1 мин
3.6KСписок продуктов, доступных для покупки.
Скидка действует только на новые персональные лицензии, то есть продлить имеющуюся у вас лицензию не получится.
+17
Реализация шаблона Identity Map в Yii Framework
3 мин
8.2KДоброго времени суток, хабрасообщество!
При работе с базой данных или просто с объектами, доступными из разных частей вашего приложения, есть опасность, что объекты, которые, казалось бы, должны быть равны вовсе таковыми не являются.
Например, допустим, у нас есть некоторая модель ActiveRecord — Expence и вот такой код:
Таким образом, меняя одну модель мы никоим образом не затронем вторую(что логично, так как они ссылаются на разные объекты).
Проблема
При работе с базой данных или просто с объектами, доступными из разных частей вашего приложения, есть опасность, что объекты, которые, казалось бы, должны быть равны вовсе таковыми не являются.
Например, допустим, у нас есть некоторая модель ActiveRecord — Expence и вот такой код:
$modelOne = Expence::model()->findByPk(10);
$modelTwo = Expence::model()->findByPk(10);
var_dump($modelOne === $modelTwo); // Вернет false
Таким образом, меняя одну модель мы никоим образом не затронем вторую(что логично, так как они ссылаются на разные объекты).
$modelOne->someField = "Data";
$modelOne->save();
/// ...какой-то код...
echo $modelTwo->someField; // Содержит старое значение
$modelTwo->save(); // Затираем ранее записаные данные
+24
Информация
- В рейтинге
- Не участвует
- Откуда
- Красноярск, Красноярский край, Россия
- Зарегистрирован
- Активность