Esempio n. 1
0
 /**
  * Allowing to emit static events through public variable
  *
  * @param string name
  * @param array of args
  * @return mixed
  */
 public static function __callStatic($name, $args)
 {
     $class = new Nette\Reflection\ClassType(get_called_class());
     $properties = $class->getStaticProperties();
     if (isset($properties[$name])) {
         if (is_array($list = $properties[$name]) || $list instanceof \Traversable) {
             foreach ($list as $handler) {
                 callback($handler)->invokeArgs($args);
             }
         }
         return NULL;
     }
     return parent::__callStatic($name, $args);
 }
 /**
  * Magic call allows to invoke repository methods like:
  * $user = User::find($id);
  * $users = User::findBy(array("name" => "beberlei"));
  * $beberlei = User::findOneBy(array("name" => "beberlei"));
  *
  * @param mixed $method
  * @param mixed $arguments
  * @return mixed
  */
 public static function __callStatic($method, $arguments)
 {
     try {
         $cb = callback(self::getRepository(), $method);
         return $cb->invokeArgs($arguments);
     } catch (InvalidStateException $e) {
         // todo: BadMethodCallException ?
         return parent::__callStatic($method, $arguments);
     }
 }