Да точно вам говорю) мне, к сожалению, пришлось писать драйверы на версию 7 и 8 отдельно, как раз из-за изменения в сигнатруе метода. Вот было интересно как это решал и решал ли автор статьи.
fetch mode можно указать например непосредственно в query(), а не выставлять его отдельно.
Спасибо за такой полезный материал! Как раз создаю ORM с PDO драйверами.
Статья объемная и может быть что-то пропустил. Хотел спросить как вы решаете проблему поддержки разных версий PDO. Сигнатуры методов для версий разных версий PDO различаются. Например метод PDO::query
PDO v.7( PHP 5.6 на сколько помню ): public function query( $statement, $mode = PDO::ATTR_DEFAULT_FETCH_MODE, $arg3 = null, array $ctorargs = [] )
PDO v.8( PHP 7+ ): public function query($statement, $mode = PDO::ATTR_DEFAULT_FETCH_MODE, ...$fetch_mode_args)
Делаете ли вы поддержку для старых версий или отказались от неё?
Большое спасибо за ответ!
Наверно надо отказаться от поддержки старого. Работая над новым проектом как-то по-инерции думаю о PHP 5.6 =(
Да точно вам говорю) мне, к сожалению, пришлось писать драйверы на версию 7 и 8 отдельно, как раз из-за изменения в сигнатруе метода. Вот было интересно как это решал и решал ли автор статьи.
fetch mode можно указать например непосредственно в query(), а не выставлять его отдельно.
Спасибо за такой полезный материал! Как раз создаю ORM с PDO драйверами.
Статья объемная и может быть что-то пропустил. Хотел спросить как вы решаете проблему поддержки разных версий PDO. Сигнатуры методов для версий разных версий PDO различаются. Например метод PDO::query
PDO v.7( PHP 5.6 на сколько помню ): public function query( $statement, $mode = PDO::ATTR_DEFAULT_FETCH_MODE, $arg3 = null, array $ctorargs = [] )
PDO v.8( PHP 7+ ): public function query($statement, $mode = PDO::ATTR_DEFAULT_FETCH_MODE, ...$fetch_mode_args)
Делаете ли вы поддержку для старых версий или отказались от неё?