for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace MuhmdRaouf\LaravelParatest\Database;
use PDO;
class PDOConnector implements Connector
{
public function __construct(PDO $pdo)
$this->pdo = $pdo;
pdo
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
class MyClass { } $x = new MyClass(); $x->foo = true;
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:
class MyClass { public $foo; } $x = new MyClass(); $x->foo = true;
}
public static function make(array $configs): PDOConnector
$driver = $configs['driver'];
$host = $configs['host'] ?? '127.0.0.1';
$username = $configs['username'];
$password = $configs['password'];
$host = "$driver:host=$host";
$pdo = new PDO($host, $username, $password);
return new static($pdo);
/**
* @param string $sql
*
* @return mixed whatever the actual implementation returns, depending on the connector
*/
public function exec(string $sql)
return $this->pdo->exec($sql);
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: