Hromadné doplnění typů – typehint
- kolibla
- Člen | 25
Ahoj, přátelé,
možná jsem nepochopila správně funkci Generátoru PHP kódu
(https://doc.nette.org/…hp-generator),
ale potřebovala bych automaticky doplnit všechny například návratové
hodnoty (typy) k metodám. Následující příklad si snad dokáži napsat do
kódu rychleji, nechápu smysl, protože tohle je například pro 500 metod
nemožné:
$method = $class->addMethod('count')
->addComment('Count it.')
->addComment('@return int')
->setFinal()
->setProtected()
->setReturnType('int') // návratové typy u metod
->setReturnNullable() // nullable typy
->setBody('return count($items ?: $this->items);');
Můj usecase je prosím takový, že bych si potřebovala například určit
adresář app a provést regenerate
kódu. V podstatě nějaké
komplexní (hromadné) doplnění typehintů. Pokud to nejde přes tento
nástroj hromadně
, jaké jsou možnosti – ideálně něco, co
to rovnou opraví v souborech?
Děkuji a nezlobte se, možná se jen blbě ptám. :)
- dakur
- Člen | 493
@kolibla Ahoj, přesně na hromadný upgrade kódu vznikl nástroj rector. Mně se s ním ale třeba pracuje špatně – přijde mi, že nemá docs napsané pro lidi, kteří mu nerozumnějí. Ale můžeš to zkusit.
Jinak nette/php-generator
je pro generování
kódu, ne úpravu. I když se k tomu samozřejmě použít dá, my např.
v našem scaffolderu přenášíme vybrané existující metody do nové
třídy (link).
Snad by to šlo nějak podobně udělat i pro tvůj use-case.
A ano, phpstan
taky vypadá, že by to měl umět. 🙂