Кто что придумал? Начну.
Transaction-блоки а-ля ruby:
Transaction-блоки а-ля ruby:
PHP:
class Database_Connection { // delegates to Pdo
// ...
public function transaction(Closure $c) {
$this->beginTransaction();
try {
$result = $c->bindTo($this)->__invoke();
$this->commit();
} catch (Exception $e) {
$this->rollback();
throw $e;
}
return $result;
}
// ...
}
// Usage:
$Connection->transaction(function() {
// inside a transaction...
});