@Kerm

Проблема с пониманием, будет ли работать такая реализация?

<?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?
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы