При написании облегченной оболочки для PDO я заметил, что метод PDO :: Query, по-видимому, имеет 4 различные подписи, доступные для использования в соответствии с документацией:
http://php.net/manual/en/pdo.query.php
Перегрузка методов не разрешена в PHP, и кажется, что PHPDoc не нравится этот сценарий, по крайней мере, при использовании PHPStorm 8.x и следующего кода (я предоставил только две подписи для этого примера):
<?php
/**
* @method \PDOStatement query(string $statement)
* @method \PDOStatement query(string $statement, int $PDO::FETCH_COLUMN, int $colno)
*/
class Database
{
private $PDO;
public function __construct($dsn, $user = null, $pass = null, $options = null)
{
$this->PDO = new \PDO($dsn, $user, $pass, $options);
}
public function __call($method, $arguments)
{
return call_user_func_array(array(&$this->PDO, $method), $arguments);
}
}
Конечно, второй оператор @method выделен красным в PHPStorm со следующей ошибкой:
«Метод с тем же именем уже определен в этом классе»
У кого-нибудь есть предложения как это исправить?
Задача ещё не решена.
Других решений пока нет …