for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace ntentan\atiaa;
use ntentan\panie\Container;
use ntentan\utils\Text;
class DbContext {
private $container;
private $config;
private $driver;
public function __construct(Container $container, array $config) {
$container->bind(Driver::class)
->to(self::getDriverClassName($config['driver']));
$this->container = $container;
$this->config = $config;
}
/**
*
* @return Driver
*/
public function getDriver() {
if(is_null($this->driver)) {
$this->driver = $this->container->resolve(Driver::class, ['config' => $this->config]);
return $this->driver;
public static function getDriverClassName($driver) {
if ($driver == null) {
throw new exceptions\DatabaseDriverException(
"Please provide a valid driver name in your database config file"
);
return '\ntentan\atiaa\drivers\\' . Text::ucamelize($driver) . "Driver";
public function query($query, $bindData = false) {
return $this->getDriver()->query($query, $bindData);
$bindData
boolean
false|array<integer,*>
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example:
function acceptsInteger($int) { } $x = '123'; // string "123" // Instead of acceptsInteger($x); // we recommend to use acceptsInteger((integer) $x);
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: