public function testStartedByOther() { TransactionManager::begin($this->Model->useDbConfig); $this->Model->save($this->Model->create()); $this->assertEqual($this->_getBehavior()->log, array()); TransactionManager::rollback($this->Model->useDbConfig); }
public static function process($exception) { if (class_exists('TransactionManager')) { TransactionManager::rollback(); } $params = array('class' => $class = get_class($exception), 'message' => $exception->getMessage(), 'file' => str_replace(ROOT, 'ROOT', $exception->getFile()), 'line' => $exception->getLine(), 'trace' => $exception->getTraceAsString()); $textError = self::_text($params); if (Configure::read('debug') == 0) { Object::log($textError); switch (true) { case $class === 'DatabaseError': return Object::cakeError('error503', array(array('code' => 503, 'name' => 'Service Unavailable', 'message' => ''))); case isset($exception->httpCode): $error = $exception->httpCode === 403 ? 'forbidden' : 'error' . $exception->httpCode; return Object::cakeError($error); } return Object::cakeError('error500', array(array('code' => 500, 'name' => 'An Internal Error Has Occurred', 'message' => ''))); } else { if (php_sapi_name() == 'cli') { echo $textError; } else { header('Content-Type: text/html; charset=UTF-8'); echo self::_html($params); } } }
public static function rollback($datasource = 'default') { $result = parent::rollback($datasource); if ($result) { self::$rollbacked[] = $datasource; } return $result; }