18 $this->embedsResource = (bool) $embeds_resource;
21 public function make($string) {
22 $embeds = ($string ===
'embedded');
26 public function validate($uri, $config, $context) {
28 if ($config->get(
'URI.Disable'))
return false;
33 $uri = $this->parser->parse($uri);
34 if ($uri ===
false)
return false;
37 $context->register(
'EmbeddedURI', $this->embedsResource);
43 $result = $uri->validate($config, $context);
47 $uri_def = $config->getDefinition(
'URI');
48 $result = $uri_def->filter($uri, $config, $context);
52 $scheme_obj = $uri->getSchemeObj($config, $context);
53 if (!$scheme_obj)
break;
54 if ($this->embedsResource && !$scheme_obj->browsable)
break;
55 $result = $scheme_obj->validate($uri, $config, $context);
59 $result = $uri_def->postFilter($uri, $config, $context);
67 $context->destroy(
'EmbeddedURI');
68 if (!
$ok)
return false;
71 return $uri->toString();