Register vlastního formulářového prvku tak, aby PhpStorm a PHPStan o něm věděly

Croc
Člen | 270
+
+6
-

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)

robert.sipek
Člen | 4
+
0
-

Ahoj, jak jsi to nakonec vyřešil, prosím? Díky.

Marek Bartoš
Nette Blogger | 1146
+
+3
-

$form['input'] = new CustomInput(). Jinak bys musel dědid Form, přetěžovat vytváření Container a dědit Container