Metoda Date and Time depreceated

gizer
Člen | 62
+
0
-

Zdravím všechny,
mám takový problém. Přenesl jsme svůj projekt na jiné PC s nejnovější verzi phpStormu a nejnovější verzi Xampp. Při spouštění se mně začala objevovat tato chyba v Tracy.

Deprecated

Return type of Nette\Utils\DateTime::createFromFormat($format, $time, $timezone = null) should either be compatible with DateTime::createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTime|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice

s odkazem na metodu

File: …\nette\utils\src\Utils\DateTime.php:100

100: public static function createFromFormat($format, $time, $timezone = null)
101: {
102: if ($timezone === null) {
103: $timezone = new \DateTimeZone(date_default_timezone_get());

Děkuji moc za případnou radu, jak na to.

Marek Bartoš
Nette Blogger | 651
+
0
-

Tahle změna se objevila v php 8.1, vyřešena je v Nette 3. Můžeš tedy zůstat na php 8.0 nebo menším, aktualizovat Nette na poslední verzi nebo řešení odložit a reportování chyb vypnout v bootstrapu přes error_reporting(E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED);, viz https://www.php.net/…eporting.php

Editoval Marek Bartoš (8. 1. 16:27)

gizer
Člen | 62
+
0
-

Díky moc odpověď. Zkouším to zapsat do toho bootstrapu a nevím přesně jak? Poradíš ještě prosím, viz níže bootstrap. Jinak je divné, že celý projekt mám v Nette 3.0. Není to spíše vyřešeno až v 3.1?

public static function boot(): Configurator
	{
		$configurator = new Configurator;

		//$configurator->setDebugMode('23.75.345.200'); // enable for your remote IP
		$configurator->enableTracy(__DIR__ . '/../log');

		$configurator->setTimeZone('Europe/Prague');
		$configurator->setTempDirectory(__DIR__ . '/../temp');

		$configurator->createRobotLoader()
			->addDirectory(__DIR__)
			->register();

		$configurator->addConfig(__DIR__ . '/config/common.neon');
		$configurator->addConfig(__DIR__ . '/config/local.neon');

        error_reporting(E_ALL & ~E_DEPRECATED & E_USER_DEPRECATED);

		return $configurator;

Díky moc.

Editoval gizer (8. 1. 16:26)

Marek Bartoš
Nette Blogger | 651
+
0
-

Když máš Nette 3, tak prostě spusť composer update, abys měl poslední verze balíků.

gizer
Člen | 62
+
0
-

Díky moc za radu. Problém vyřešen přechodem zpět na php PHP 8.0.

Editoval gizer (9. 1. 7:06)