<?php
class Name {
/**
* @var Db
*/
protected $db;
public function __construct(Db $db)
{
$this->db = $db;
}
public function set() {
/** @var Ips $ips */
$ips = $this->container->get(Ips::class);
$this->db->startTransaction();
// здесь идет какой то SQL запрос с записью..
if ($ips->insertInfo()) { <- у метода в другом классе тоже запись в бд и есть $this->db->startTransaction(); $this->db->commit()
$this->db->commit();
}
$this->db-rollback();
}
}
class Ips {
/**
* @var Db
*/
protected $db;
public function __construct(Db $db)
{
$this->db = $db;
}
public function insertInfo() {
$this->db->startTransaction();
if(1=1) {
// здесь идет какой то SQL запрос с записью..
$this->db->commit();
return true;
}
$this->db-rollback();
return false;
}
}
Я сам думаю что все должно работать, у каждого класса свой экземпляр класса DB, но в друг я чего то не учел? подскажите коммит в классе Ips он же не сделает коммит транзакции в классе Name?