Adds a method to class.
public static setExtensionMethod ( $class, $name, $callback ) : void | ||
return | void |
public static function registerControls() { ObjectMixin::setExtensionMethod(Container::class, 'addDatePicker', function (Container $container, $name, $label = null) { return $container[$name] = new Controls\DatePicker($label); }); ObjectMixin::setExtensionMethod(Container::class, 'addDateTimePicker', function (Container $container, $name, $label = null) { return $container[$name] = new Controls\DateTimePicker($label); }); ObjectMixin::setExtensionMethod(Container::class, 'addTypeahead', function (Container $container, $name, $label = null, $callback = null) { return $container[$name] = new Controls\Typeahead($label, $callback); }); }
/** * Adding method to class. * * @param $name * @param null $callback * * @throws \Nette\MemberAccessException * @return callable|null */ public static function extensionMethod($name, $callback = NULL) { if (strpos($name, '::') === FALSE) { $class = get_called_class(); } else { list($class, $name) = explode('::', $name); } if ($callback === NULL) { return ObjectMixin::getExtensionMethod($class, $name); } else { ObjectMixin::setExtensionMethod($class, $name, $callback); } }
public static function extensionMethod($name, $callback = NULL) { if (strpos($name, '::') !== FALSE) { // back compatibility list(, $name) = explode('::', $name); } Nette\Utils\ObjectMixin::setExtensionMethod(get_called_class(), $name, $callback); }
/** * @return mixed * @deprecated use Nette\Utils\ObjectMixin::setExtensionMethod() */ public static function extensionMethod($name, $callback = NULL) { if (strpos($name, '::') === FALSE) { $class = get_called_class(); } else { list($class, $name) = explode('::', $name); $class = (new \ReflectionClass($class))->getName(); } trigger_error("Extension methods such as {$class}::{$name}() are deprecated" . ObjectMixin::getSource(), E_USER_DEPRECATED); if ($callback === NULL) { return ObjectMixin::getExtensionMethod($class, $name); } else { ObjectMixin::setExtensionMethod($class, $name, $callback); } }
public static function extensionMethod($name, $callback) { Nette\Utils\ObjectMixin::setExtensionMethod(__CLASS__, $name, $callback); }
/** * Adding method to class. * @param string method name * @param callable * @return mixed */ public static function extensionMethod($name, $callback = NULL) { if (strpos($name, '::') === FALSE) { $class = get_called_class(); } else { list($class, $name) = explode('::', $name); $class = (new \ReflectionClass($class))->getName(); } if ($callback === NULL) { return Nette\Utils\ObjectMixin::getExtensionMethod($class, $name); } else { Nette\Utils\ObjectMixin::setExtensionMethod($class, $name, $callback); } }