-
Notifications
You must be signed in to change notification settings - Fork 11.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Support doctrine 3 Co-Authored-By: Graham Campbell <[email protected]> * Remove workflow steps * Fix steps * formatting Co-authored-by: Graham Campbell <[email protected]> Co-authored-by: Graham Campbell <[email protected]> Co-authored-by: Taylor Otwell <[email protected]>
- Loading branch information
1 parent
9d9533f
commit 0942a13
Showing
15 changed files
with
435 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 24 additions & 0 deletions
24
src/Illuminate/Database/PDO/Concerns/ConnectsToDatabase.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
<?php | ||
|
||
namespace Illuminate\Database\PDO\Concerns; | ||
|
||
use Illuminate\Database\PDO\Connection; | ||
use PDO; | ||
|
||
trait ConnectsToDatabase | ||
{ | ||
/** | ||
* Create a new database connection. | ||
* | ||
* @param array $params | ||
* @return \Illuminate\Database\PDO\Connection | ||
*/ | ||
public function connect(array $params) | ||
{ | ||
if (! isset($params['pdo']) || ! $params['pdo'] instanceof PDO) { | ||
throw new \InvalidArgumentException('Laravel requires the "pdo" property to be set and be a PDO instance.'); | ||
} | ||
|
||
return new Connection($params['pdo']); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,182 @@ | ||
<?php | ||
|
||
namespace Illuminate\Database\PDO; | ||
|
||
use Doctrine\DBAL\Driver\PDO\Exception; | ||
use Doctrine\DBAL\Driver\PDO\Result; | ||
use Doctrine\DBAL\Driver\PDO\Statement; | ||
use Doctrine\DBAL\Driver\Result as ResultInterface; | ||
use Doctrine\DBAL\Driver\ServerInfoAwareConnection; | ||
use Doctrine\DBAL\Driver\Statement as StatementInterface; | ||
use Doctrine\DBAL\ParameterType; | ||
use PDO; | ||
use PDOException; | ||
use PDOStatement; | ||
|
||
class Connection implements ServerInfoAwareConnection | ||
{ | ||
/** | ||
* The underlying PDO connection. | ||
* | ||
* @var \PDO | ||
*/ | ||
protected $connection; | ||
|
||
/** | ||
* Create a new PDO connection instance. | ||
* | ||
* @param \PDO $connection | ||
* @return void | ||
*/ | ||
public function __construct(PDO $connection) | ||
{ | ||
$this->connection = $connection; | ||
} | ||
|
||
/** | ||
* Execute an SQL statement. | ||
* | ||
* @param string $statement | ||
* @return int | ||
*/ | ||
public function exec(string $statement): int | ||
{ | ||
try { | ||
$result = $this->connection->exec($statement); | ||
|
||
\assert($result !== false); | ||
|
||
return $result; | ||
} catch (PDOException $exception) { | ||
throw Exception::new($exception); | ||
} | ||
} | ||
|
||
/** | ||
* Prepare a new SQL statement. | ||
* | ||
* @param string $sql | ||
* @return \Doctrine\DBAL\Driver\Statement | ||
*/ | ||
public function prepare(string $sql): StatementInterface | ||
{ | ||
try { | ||
return $this->createStatement( | ||
$this->connection->prepare($sql) | ||
); | ||
} catch (PDOException $exception) { | ||
throw Exception::new($exception); | ||
} | ||
} | ||
|
||
/** | ||
* Execute a new query against the connection. | ||
* | ||
* @param string $sql | ||
* @return \Doctrine\DBAL\Driver\Result | ||
*/ | ||
public function query(string $sql): ResultInterface | ||
{ | ||
try { | ||
$stmt = $this->connection->query($sql); | ||
|
||
\assert($stmt instanceof PDOStatement); | ||
|
||
return new Result($stmt); | ||
} catch (PDOException $exception) { | ||
throw Exception::new($exception); | ||
} | ||
} | ||
|
||
/** | ||
* Get the last insert ID. | ||
* | ||
* @param string|null $name | ||
* @return mixed | ||
*/ | ||
public function lastInsertId($name = null) | ||
{ | ||
try { | ||
if ($name === null) { | ||
return $this->connection->lastInsertId(); | ||
} | ||
|
||
return $this->connection->lastInsertId($name); | ||
} catch (PDOException $exception) { | ||
throw Exception::new($exception); | ||
} | ||
} | ||
|
||
/** | ||
* Create a new statement instance. | ||
* | ||
* @param \PDOStatement | ||
* @return \Doctrine\DBAL\Driver\PDO\Statement | ||
*/ | ||
protected function createStatement(PDOStatement $stmt): Statement | ||
{ | ||
return new Statement($stmt); | ||
} | ||
|
||
/** | ||
* Begin a new database transaction. | ||
* | ||
* @return void | ||
*/ | ||
public function beginTransaction() | ||
{ | ||
return $this->connection->beginTransaction(); | ||
} | ||
|
||
/** | ||
* Commit a database transaction. | ||
* | ||
* @return void | ||
*/ | ||
public function commit() | ||
{ | ||
return $this->connection->commit(); | ||
} | ||
|
||
/** | ||
* Roll back a database transaction. | ||
* | ||
* @return void | ||
*/ | ||
public function rollBack() | ||
{ | ||
return $this->connection->rollBack(); | ||
} | ||
|
||
/** | ||
* Wrap quotes around the given input. | ||
* | ||
* @param string $input | ||
* @param string $type | ||
* @return string | ||
*/ | ||
public function quote($input, $type = ParameterType::STRING) | ||
{ | ||
return $this->connection->quote($input, $type); | ||
} | ||
|
||
/** | ||
* Get the server version for the connection. | ||
* | ||
* @return string | ||
*/ | ||
public function getServerVersion() | ||
{ | ||
return $this->connection->getAttribute(PDO::ATTR_SERVER_VERSION); | ||
} | ||
|
||
/** | ||
* Get the wrapped PDO connection. | ||
* | ||
* @return \PDO | ||
*/ | ||
public function getWrappedConnection(): PDO | ||
{ | ||
return $this->connection; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?php | ||
|
||
namespace Illuminate\Database\PDO; | ||
|
||
use Doctrine\DBAL\Driver\AbstractMySQLDriver; | ||
use Illuminate\Database\PDO\Concerns\ConnectsToDatabase; | ||
|
||
class MySqlDriver extends AbstractMySQLDriver | ||
{ | ||
use ConnectsToDatabase; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?php | ||
|
||
namespace Illuminate\Database\PDO; | ||
|
||
use Doctrine\DBAL\Driver\AbstractPostgreSQLDriver; | ||
use Illuminate\Database\PDO\Concerns\ConnectsToDatabase; | ||
|
||
class PostgresDriver extends AbstractPostgreSQLDriver | ||
{ | ||
use ConnectsToDatabase; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
<?php | ||
|
||
namespace Illuminate\Database\PDO; | ||
|
||
use Doctrine\DBAL\Driver\AbstractSQLiteDriver; | ||
use Illuminate\Database\PDO\Concerns\ConnectsToDatabase; | ||
|
||
class SQLiteDriver extends AbstractSQLiteDriver | ||
{ | ||
use ConnectsToDatabase; | ||
} |
Oops, something went wrong.