transactional() публичный метод

### Example: $connection->transactional(function ($connection) { $connection->newQuery()->delete('users')->execute(); });
public transactional ( callable $callback )
$callback callable
 /**
  * Executes list of quries in one transaction.
  *
  * @param \Cake\Database\Connection $db Connection to run the SQL queries on.
  * @param  array $queries List of SQL statements.
  * @return void
  */
 protected function _execute($db, $queries = null)
 {
     $logQueries = $db->logQueries();
     if ($logQueries) {
         $db->logQueries(false);
     }
     $db->transactional(function ($db) use($queries) {
         $db->disableForeignKeys();
         foreach ($queries as $query) {
             $this->_io->out('.', 0);
             $db->execute($query)->closeCursor();
         }
         $db->enableForeignKeys();
     });
     if ($logQueries) {
         $db->logQueries(true);
     }
 }
 /**
  * Imports tables schema and populates them.
  *
  * @param \Cake\Database\Connection $conn Database connection to use
  * @return bool True on success, false otherwise. On failure error messages
  *  are automatically set
  */
 public function importTables($conn)
 {
     $Folder = new Folder($this->config('schemaPath'));
     $fixtures = $Folder->read(false, false, true)[1];
     try {
         return (bool) $conn->transactional(function ($connection) use($fixtures) {
             foreach ($fixtures as $fixture) {
                 $result = $this->_processFixture($fixture, $connection);
                 if (!$result) {
                     $this->error(__d('installer', 'Error importing "{0}".', $fixture));
                     return false;
                 }
             }
             return true;
         });
     } catch (\Exception $ex) {
         $this->error(__d('installer', 'Unable to import database information. Details: {0}', '<p>' . $ex->getMessage() . '</p>'));
         return false;
     }
 }