Existuje nějaká štábní kultura přizpůsobená PhpStormu?

Šaman
Člen | 2640
+
0
-

Části projektu, na kterých se průběžně pracuje, přepisuji do PHP 8.2. Používám PhpStorm a snažím se eliminovat chyby (a „chyby“). Je na tom něco uspokojivého, když IDE hlásí že je soubor zcela v pořádku.

V modelu se mi docela dařilo, ale teď přepisuji presentery a tam je velká spousta věcí, které se PhpStormu nelíbí. Často to chápu, jedná se nějakou magii. Ale Nette se snaží být čistý framework, tak předpokládám, že už na stejný problém narazilo víc lidí a možná mají i sepsaná pravidla pro čisté psaní.

Namátkou:

  • $this->template-> je magické volání protected property
  • všechny renderFoo() a handleBar() metody jsou označené jako unused
  • v Database Connection v metodě query je parametr označený jako #[Language('SQL')] string $sql, ale Dibi/Nette syntaxe s automatickým escapováním pomocí hranatých závorek je označená jako chyba
  • při použití konstruktoru v komponentách a presenteru mi to piše, že mám volat konstruktor předka, ale to už jsme probrali zde
Marek Bartoš
Nette Blogger | 1186
+
+3
-

$this->template->

$this->getTemplate()->, v připravované nové verzi Nette je většina magických properties stejně deprecated

všechny renderFoo() a handleBar() metody jsou označené jako unused

Může se doplnit do pluginu, https://github.com/…tellij-nette
Ale spíš se půjde cestou, kdy se pluginy naučí rozumět mapování (Latte pro plugin to už myslím umí) nebo se z mapování stane volitelná věc (mám mapping upravený tak, aby se šlo odkázat přímo na třídu – WIP)

v Database Connection v metodě query je parametr označený jako #[Language(‚SQL‘)] string $sql, ale Dibi/Nette syntaxe s automatickým escapováním pomocí hranatých závorek je označená jako chyba

Vyzkoušej změnit na #[Language('GenericSQL')]. V mém případě to problém s neznámou syntaxí umlčelo

při použití konstruktoru v komponentách a presenteru mi to piše, že mám volat konstruktor předka

Když se proklikneš do konfigurace inspection, tak je možné tam nastavit scope a vytvořit si vlastní scope. Můžeš tak cílit na všechny soubory kromě těch končících na Presenter.php

Editoval Marek Bartoš (16. 1. 18:08)