Nettrine/ORM a prechod na PHP 8.1

krejci_napojse
Bronze Partner | 3
+
+1
-

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.

Petr Parolek
Člen | 455
+
0
-

Ahoj, už měsíc mi tu visí issue https://github.com/…al/issues/65

krejci_napojse
Bronze Partner | 3
+
0
-

Ano, videl jsem. Prave proto se snazim zjistit nejake info, zda bude balicek nadale udrzovany.

Felix
Nette Core | 1186
+
0
-

Ahoj @krejci_napojse. Diky za dotaz na PHP 8.1. Balicky jsou udrzovane, netreba se bat. Mas nejaky prehled co je za problemy na PHP 8.1?

krejci_napojse
Bronze Partner | 3
+
0
-

@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 | 1186
+
0
-

Diky za report. Doporucuju sledovat tracking issue https://github.com/…te/issues/59.

MichalHaltuf
Bronze Partner | 14
+
0
-

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
+
0
-
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
+
0
-

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