vendor/doctrine/orm/src/Query/Exec/SingleTableDeleteUpdateExecutor.php line 43

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Doctrine\ORM\Query\Exec;
  4. use Doctrine\DBAL\Connection;
  5. use Doctrine\DBAL\Connections\PrimaryReadReplicaConnection;
  6. use Doctrine\ORM\Query\AST;
  7. use Doctrine\ORM\Query\SqlWalker;
  8. /**
  9.  * Executor that executes the SQL statements for DQL DELETE/UPDATE statements on classes
  10.  * that are mapped to a single table.
  11.  *
  12.  * @link        www.doctrine-project.org
  13.  */
  14. class SingleTableDeleteUpdateExecutor extends AbstractSqlExecutor
  15. {
  16.     /** @param SqlWalker $sqlWalker */
  17.     public function __construct(AST\Node $AST$sqlWalker)
  18.     {
  19.         parent::__construct();
  20.         if ($AST instanceof AST\UpdateStatement) {
  21.             $this->sqlStatements $sqlWalker->walkUpdateStatement($AST);
  22.         } elseif ($AST instanceof AST\DeleteStatement) {
  23.             $this->sqlStatements $sqlWalker->walkDeleteStatement($AST);
  24.         }
  25.     }
  26.     /**
  27.      * {@inheritDoc}
  28.      *
  29.      * @return int
  30.      */
  31.     public function execute(Connection $conn, array $params, array $types)
  32.     {
  33.         if ($conn instanceof PrimaryReadReplicaConnection) {
  34.             $conn->ensureConnectedToPrimary();
  35.         }
  36.         return $conn->executeStatement($this->sqlStatements$params$types);
  37.     }
  38. }