Nettrine/ORM a prechod na PHP 8.1
- krejci_napojse
- Bronze Partner | 4
Hezky den,
Nettrine/orm a jeji navazane balicky nefunguji pro PHP 8.1. Je tu nekdo z kluku – budete to prosim nejak upravovat? Aktualne je to jediny duvod, proc nemuzeme switchnout na PHP 8.1. @Felix ? Diky moc za informaci.
- krejci_napojse
- Bronze Partner | 4
Ano, videl jsem. Prave proto se snazim zjistit nejake info, zda bude balicek nadale udrzovany.
- krejci_napojse
- Bronze Partner | 4
@Felix problem je ze je nettrine/dbal zavisla na
"doctrine/dbal": "^2.9.2"
a to pak hlasi
PDO::quote(): Passing null to parameter #1 ($string) of type string is deprecated
Pokud si stahneme nejnovejsi verzi 3.3.0 tak to zase hlasi problemy jinde. Proste tech nekompatibilit je tam cela rada.
PS: zda se ze ta chyba se projevuje jen pri zapisu, cist lze z DB bez problemu.
Editoval krejci_napojse (21. 1. 2022 11:23)
- Felix
- Nette Core | 1245
Diky za report. Doporucuju sledovat tracking issue https://github.com/…te/issues/59.
- MichalHaltuf
- Bronze Partner | 14
Narážím na tento problém poměrně často, jako takový rychlý hotfix se
mi osvědčily tyto věci:
1/ vypnout debugMode
2/ pokud to nejde, tak natvrdo editovat
vendor\nettrine\dbal\src\Logger\ProfilerLogger.php
řádek 62:
$quotedParams[] = $this->connection->quote($value, $type);
přepsat na
$quotedParams[] = $this->connection->quote((string) $value, $type);
Je to ošklivý hack a hádám, že to rozbije trackování některých SQL dotazů, ale aspoň to pak běží.
Editoval MichalHaltuf (25. 2. 2022 16:47)
- VáclavČerný
- Člen | 1
PDO::quote(): Passing null to parameter #1 ($string) of type string is deprecated
Nejjednodušší je zatím vypnout debug panel:
nettrine.dbal:
debug:
panel: false
- sjiamnocna
- Člen | 28
Zdravím, teď jsem na to narazil při upgradu PHP (a Composer balíčků) a docela mě zachránilo, že už jste to řešili.
Any chance, že je to někde opravené? Vypnul jsem panel, ale možná by nebylo špatné jej mít? :)
Díky