Обновление базы данных на __destruct ()?

Как вы думаете, это хорошая идея?

Допустим, у вас есть компонент приложения, который используется другими компонентами для извлечения / обновления данных в db. Это в основном класс с методами get (), set (), update ().

Было бы хорошей идеей для того, чтобы этот компонент обновлял (или устанавливал) данные только в своих свойствах при вызове и на __destruct также обновлял db? Или он должен напрямую обновлять db для каждого вызова набора / обновления?

Solutions Collecting From Web of "Обновление базы данных на __destruct ()?"

Обновление базы данных об уничтожении объекта пахнет мне немного как побочный эффект программного обеспечения. То есть действие, которое происходит в неожиданном и несколько неявном месте. При просмотре вашего кода было бы не очевидно, что действие базы данных происходит при __destruct() , даже если вы вызываете его явно. Будущие разработчики кода (включая вас самих) можно легко смутить, пытаясь выследить ошибку, связанную с несогласованными данными, но не видя вызовов вызовов базы данных или методов, похожих на взаимодействие данных при просмотре кода.

Я бы посоветовал это сделать.

Попытка выбросить исключение из деструктора (вызываемого во время завершения скрипта) вызывает фатальную ошибку.

Так что, когда у вас есть исключение? В любом случае, я думаю, что это не очень хорошая идея, вы не можете контролировать поток работы, и легко вести отладочный ад.