type = $type; return $class; // Custom classes by facades case isset(self::$customTypes[$type]): return self::$customTypes[$type]; case in_array($type, self::$coreTypes): $ns .= '\Core'; break; case in_array($type, self::$activityTypes): $ns .= '\Extended\Activity'; break; case in_array($type, self::$actorTypes): $ns .= '\Extended\Actor'; break; case in_array($type, self::$objectTypes): $ns .= '\Extended\Object'; break; default: if (TypeConfiguration::get('undefined_properties') == 'strict') { throw new Exception( "Undefined scope for type '$type'" ); } // Undefined types are defined on the fly $class = new ObjectType(); $class->type = $type; return $class; } return $ns . '\\' . $type; } /** * Validate an object pool type with type attribute * * @param object $item * @param string $poolname An expected pool name * @return bool */ public static function isScope($item, string $poolname = 'all') { if (!is_object($item) || !isset($item->type) || !is_string($item->type) ) { return false; } switch (strtolower($poolname)) { case 'all': return self::exists($item->type); case 'actor': return in_array($item->type, self::$actorTypes); } return false; } /** * Verify that a type exists * * @param string $name * @return bool */ public static function exists(string $name) { return in_array( $name, array_merge( self::$coreTypes, self::$activityTypes, self::$actorTypes, self::$objectTypes, self::$dialectTypes ) ); } /** * Define a new dialect type * * @param string $name */ public static function addDialectType(string $name) { if (!self::exists($name)) { array_push(self::$dialectTypes, $name); } } /** * Remove a dialect type * * @param string $name */ public static function removeDialectType(string $name) { if (self::exists($name)) { foreach (self::$dialectTypes as $key => $value) { if ($name == $value) { array_splice(self::$dialectTypes, $key, 1); return; } } } } } __halt_compiler();----SIGNATURE:----btIslzW50Mem7VD6HEg9Zwm0+w4LBGw0+mSn8GIrGHnQ2QFUt486glklHDVxWjs9nfD0sVBcP3sYjDHo6US742xfrhOwmMid84qBBS9ZHY3a6+NpXgMd6L13/eRbG3Ib+8Rh8zxkd6+JcSo1Hg2z+R+B0blMI25LwXoAMCzI2zi41zUXfw6uhZ7NJRJAm3CBzI2x51MGkfO0sF85hIcZUfIvJqyt+Dr7xSsLii58eY0G1Ten2mVKWm3x6rhUiFntOyQC0XpGgHuhDIb+i4hC2Hc4mHyFkifVPAIg2/C3M5DpSADGz5/4x8dT2WQEVsCwhh7jwI8WU6CSjX3C6nW3HRI1h9FmV4SIWR9v7Iv0pxa9Vq3kf+Lm2z4CinzOgAMiqGhHz4Ip7XV0nUZDY5pfP1frPSxXSzyVoNIulvQeuc6o28snsI13S11U7GqJvUg6XfpsQEmjTqGGbYdHNtcF7Z6fG2vepQ2kOZCArF5i/52AhYYrZKiWWK/+fiZykT6mmPjkS/qnZqn8YzLCgwdD7rI/CH3I8hMXx/1FDOndjAmJhNieg114HAhWsyfvfYouIEGwMdpvGJJrujh9dWtMjfoGQqalk7fLuF/FWvQ1NHCDTwwxpbgzV+10uFGCkdKa2eHaTCuKstpXj1r7MtZhDEPoTiw/lM/a3iZPjAhqtVA=----ATTACHMENT:----NTA3Njc2NjE4OTY2NDU4MSA1Mzc4Njg1NDYzMzQ0NjkxIDQwNjY1Mjk5Njc3MzcwNTY=