Skip to content

Commit

Permalink
Container: explicit support for extension methods
Browse files Browse the repository at this point in the history
  • Loading branch information
dg committed Apr 5, 2016
1 parent fa84d63 commit 9e359e6
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/Forms/Container.php
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,27 @@ public function addContainer($name)
}


/********************* extension methods ****************d*g**/


public function __call($name, $args)
{
if ($callback = Nette\Utils\ObjectMixin::getExtensionMethod(__CLASS__, $name)) {
return Nette\Utils\Callback::invoke($callback, $this, ...$args);
}
return parent::__call($name, $args);
}


public static function extensionMethod($name, $callback = NULL)
{
if (strpos($name, '::') !== FALSE) { // back compatibility
list(, $name) = explode('::', $name);
}
Nette\Utils\ObjectMixin::setExtensionMethod(__CLASS__, $name, $callback);
}


/********************* interface \ArrayAccess ****************d*g**/


Expand Down

0 comments on commit 9e359e6

Please sign in to comment.