Tracy debugger – zobrazení depricated volání
- milanb
- Člen | 64
Ahoj, chtěl bych, aby mi Tracy debugger nějak nahlásil, že někde
v kódu používám depricated funkce (upgraduju). A takto mám nastavený
Tracy v bootstrap.php
:
$configurator->setTempDirectory(__SITEDIR__ . '/temp');
$configurator->setDebugMode(true);
Tracy\Debugger::$logSeverity = E_NOTICE | E_WARNING; // loguj PHP chyby jako E_NOTICE nebo E_WARNING s podrobnými informacemi (HTML report)
Tracy\Debugger::$strictMode = true; // zobraz všechny chyby
Tracy\Debugger::$scream = E_USER_DEPRECATED | E_DEPRECATED;
$configurator->enableDebugger(__SITEDIR__ . '/log');
A bezpečně má v k=odu pužito například setAttribute
pro
komponentu formuláře, což je depricated (ukazuje intellisense), a má být
místo toho setHtmlAttribute
, ale Tracy to při zobrazení
formuláře s tagovým kódem nikde neukáže.
Co mám špatně?
Díky.
- jeremy
- Člen | 50
Intellisense ti to ukazuje protoze to je oznaceny
/** @deprecated ... */
anotaci. To ti php ani tracy
nedetektuje.
E_DEPRECATED
a E_USER_DEPRECATED
funguje jen pro
funkce, ktere jsou deprecated nativne v php nebo pokud je pouzita funkce
trigger_error(message: $message, error_level: E_USER_DEPRECATED)
.
Pokud chces najit /** @deprecated ... */
funkce tak musis pouzit
nastroj jako PHPStan.
Edit: Mozna by se to do tracy mohlo implementovat, ale asi to nemelo velkou prioritu.
Editoval jeremy (22. 3. 19:53)
- Marek Bartoš
- Nette Blogger | 1177
Deprecations nejsou notice ani warnings
Celý seznam konstant s úrovněmi errorů najdeš tady https://www.php.net/…onstants.php
Lepší postup než je přidávat všechny je začít na všech a odebírat ty,
které nechceš, takto E_ALL & ~(E_NOTICE|E_USER_NOTICE)
(vše
kromě notice)
Tracy ti ale takto nahlásí jen deprecations vytvořené pomocí
trigger_error('message', E_USER_DEPRECATED)
Anotace @deprecated
, které ti hlásí IDE samy o sobě v runtime
nic nedělají a pro jejich automatické nalezení je nejvhodnější použít
phpstan s phpstan-deprecation-rules
Edit: tak kolega nade mnou byl rychlejší
Editoval Marek Bartoš (22. 3. 19:55)