Register vlastního formulářového prvku tak, aby PhpStorm a PHPStan o něm věděly
- Croc
- Člen | 270
Zdravím,
mám takový problém. Mám vlastní formulářový prvek, který normálně
funguje. Ale problém je, že PhpStorm a PHPStan o něm neví. Jak tedy
správně definovat vlastní formulářový prvek, aby o něm PHPStan
i PhpStorm věděly?
Registraci mám takto:
class MujInput extends Nette\Forms\Controls\BaseControl {
// ...
/**
* @param string $method
* @param $config
*/
public static function register($method = 'addMujInput', $config) {
$class = function_exists('get_called_class') ? get_called_class() : __CLASS__;
Nette\Forms\Container::extensionMethod(
$method,
function (
Nette\Forms\Container $container,
$name,
$label,
$entity = null,
array $options = null
) use ($config, $class) {
$component = new MujInput(
$label,
$entity,
is_array($options) ? array_replace($config, $options) : $config
);
$container->addComponent($component, $name);
return $component;
}
);
}
}
Když pak použiju, tak PhpStorm hlásí že
Method 'addMujInput' not found in \Nette\Application\UI\Form
:
$form->addMujInput('user', 'Zobrazit uživatele:', $user_list, $setting)
Moc děkuju
Editoval Croc (22. 11. 2018 9:18)
- Marek Bartoš
- Nette Blogger | 1263
$form['input'] = new CustomInput()
. Jinak bys musel dědid Form,
přetěžovat vytváření Container a dědit Container