for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Soluble\DbWrapper\Adapter;
use Soluble\DbWrapper\Exception;
use Soluble\DbWrapper\Adapter\Pdo\GenericPdo;
use Soluble\DbWrapper\Connection\MysqlConnection;
use PDO;
class PdoMysqlAdapter extends GenericPdo implements AdapterInterface
{
/**
*
* @var \PDO
*/
protected $resource;
* Constructor
* @throws Exception\InvalidArgumentException
* @throws Exception\RuntimeException
* @param \PDO $resource
* @param \PDO $connection
$connection
This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.
Consider the following example. The parameter $italy is not defined by the method finale(...).
$italy
finale(...)
/** * @param array $germany * @param array $island * @param array $italy */ function finale($germany, $island) { return "2:1"; }
The most likely cause is that the parameter was removed, but the annotation was not.
public function __construct(PDO $resource)
$this->checkEnvironment();
if ($resource->getAttribute(\PDO::ATTR_DRIVER_NAME) != 'mysql') {
$msg = __CLASS__ . " requires pdo connection to be 'mysql'";
throw new Exception\InvalidArgumentException($msg);
}
$this->resource = $resource;
$this->connection = new MysqlConnection($this, $resource);
connection
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;
* {@inheritdoc}
* @return MysqlConnection
public function getConnection()
return $this->connection;
This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function.
Consider the following example. The parameter
$italy
is not defined by the methodfinale(...)
.The most likely cause is that the parameter was removed, but the annotation was not.