Nette 3.0 a PHP 8.0 – Method ReflectionParameter::isArray() is deprecated
- kralik
- Člen | 230
Ahoj,
zkouším rozjet Nette 3.0. na PHP 8.0. a úplně se mi nedaří.
Našel jsem info o Nette 3.0 je kompatibilní s PHP 8.0.
https://nette.org/cs/maintenance
Bohužel dostávám tuto deprecated.
Method ReflectionParameter::isArray() is deprecated
V tomto souboru na řádku 525.
File: ...\vendor\nette\di\src\DI\Resolver.php:525
515: if ($res !== null || $parameter->allowsNull()) {
516: return $res;
517: } elseif (class_exists($type) || interface_exists($type)) {
518: throw new ServiceCreationException("Service of type $type needed by $desc not found. Did you register it in configuration file?");
519: } else {
520: throw new ServiceCreationException("Class $type needed by $desc not found. Check type hint and 'use' statements.");
521: }
522:
523: } elseif (
524: $method instanceof \ReflectionMethod
525: && $parameter->isArray()
526: && preg_match('#@param[ \t]+([\w\\\\]+)\[\][ \t]+\$' . $parameter->getName() . '#', (string) $method->getDocComment(), $m)
527: && ($itemType = Reflection::expandClassName($m[1], $method->getDeclaringClass()))
528: && (class_exists($itemType) || interface_exists($itemType))
529: ) {
Předem díky za radu
- Jan Tvrdík
- Nette guru | 2595
Máš starou verzi, je to fixed v nette/di
od verze
3.0.5
.
https://github.com/…162b83e1f7bc
- kralik
- Člen | 230
Jan Tvrdík napsal(a):
Máš starou verzi, je to fixed v
nette/di
od verze3.0.5
.
https://github.com/…162b83e1f7bc
Díky vyzkouším.
Ještě si hraju s Nette 3.1. a PHP 8.1.2.
Mám „nette/database“: „^3.1“
Return type of Nette\Database\ResultSet::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
File: ...\database\src\Database\ResultSet.php:172
162:
163:
164: public function rewind(): void
165: {
166: if ($this->result === false) {
167: throw new Nette\InvalidStateException(self::class . ' implements only one way iterator.');
168: }
169: }
170:
171:
172: public function current()
173: {
174: return $this->result;
175: }
176:
Díky
- Jan Tvrdík
- Nette guru | 2595
To je furt dokola. Máš starou verzi. Je to fixed od nette/database verze 3.1.4.
- kralik
- Člen | 230
Jan Tvrdík napsal(a):
Máš starou verzi, je to fixed v
nette/di
od verze3.0.5
.
https://github.com/…162b83e1f7bc
Ještě dosávám tuto chybu.
Method App\Router\RouterFactory::createRouter() is not callable.
v common.neon mám
services:
...
- App\Router\RouterFactory::createRouter
...
- Lumeriol
- Generous Backer | 63
kralik napsal(a):
Jan Tvrdík napsal(a):
To je furt dokola. Máš starou verzi. Je to fixed od nette/database verze 3.1.4.
Dobře, jak mohu zjistit jaké verze přesně potřebuji?
Díky
Ideálně poslední dostupné, přeci jen vývoj jde dopředu a každá verze přináší něco nového, opravuje nebo vylepšuje. Pokud by bylo něco nekompatibilního, můžeš se posléze vrátit k předešlé verzi v rámci, nejlépe pomocí composeru.
- Pavel Kravčík
- Člen | 1195
@kralik: Nech to ideálně na composeru, akorát si nastav platform
na stejnou
verzi PHP jako máš na produkční serveru.