public function transaction($callback = null)
{
$transaction = new Transaction($this);
// optionally add a callback and any arguments
if (func_num_args()) {
call_user_func_array(array($transaction, 'callback'), func_get_args());
}
return $transaction;
}