/**
  * Inicializa o venerável objeto $data.
  * @param array|object $value
  */
 public static function setData($value)
 {
     $data = new \stdClass();
     // se for o $_REQUEST, converte para objeto
     $valid = is_object($value) || is_array($value) && count($value);
     if ($valid) {
         foreach ($value as $name => $value) {
             if ($name == '_') {
                 continue;
             }
             if (strpos($value, 'json:') === 0) {
                 $value = json_decode(substr($value, 5));
             }
             if (strpos($name, '_') !== false) {
                 list($obj, $name) = explode('_', $name);
                 $data->{$obj}->{$name} = $value;
             } else {
                 if (strpos($name, '::') !== false) {
                     list($obj, $name) = explode('::', $name);
                     $data->{$obj}->{$name} = $value;
                 } else {
                     $data->{$name} = $value;
                 }
             }
         }
     }
     Manager::setData($data);
 }