- Forced parameters in URL to be filled in UrlExtension buildUrl() and disabled the custom exception for now...
This commit is contained in:
parent
b3a8e3aca2
commit
6ee3e1bbae
|
@ -24,6 +24,9 @@ PATTERN;
|
|||
|
||||
public array $tokens = [ "url" , "route", "asset", "slug" ];
|
||||
|
||||
#[\Deprecated]
|
||||
protected bool $enforceExistingArguments = true;
|
||||
|
||||
public function __construct(string $urlBase = "", string $assetToken = "") {
|
||||
$this->urlBase = trim($urlBase, "/");
|
||||
$this->assetToken = $assetToken;
|
||||
|
@ -216,26 +219,34 @@ PATTERN;
|
|||
$search = [];
|
||||
|
||||
foreach($matches as $item) {
|
||||
if (strpos($item[1], "=") !== false) {
|
||||
$default = null;
|
||||
|
||||
$variable = $item[1];
|
||||
|
||||
# Handles default
|
||||
if (strpos($variable, "=") !== false) {
|
||||
list($variable, $default) = explode('=', $item[1]);
|
||||
}
|
||||
elseif (strpos($item[1], ":") !== false) {
|
||||
|
||||
# Handles type
|
||||
if (strpos($variable, ":") !== false) {
|
||||
list($variable, ) = explode(':', $item[1]);
|
||||
}
|
||||
else {
|
||||
$variable = $item[1];
|
||||
}
|
||||
|
||||
if ( array_key_exists($variable, $arguments) ) {
|
||||
$value = $arguments[ $variable ];
|
||||
unset($arguments[ $variable ]);
|
||||
}
|
||||
else {
|
||||
$value = $default ?? "";
|
||||
if ($default ?? false) {
|
||||
$value = $default;
|
||||
}
|
||||
elseif ($this->enforceExistingArguments) {
|
||||
throw new \RuntimeException(sprintf("Error while preparing route %s : could not match variable '%s' into given arguments ( %s )", $route, $variable, json_encode($arguments)));
|
||||
}
|
||||
}
|
||||
|
||||
$search[ $item[0] ] = $value;
|
||||
|
||||
}
|
||||
|
||||
$route = str_replace(array_keys($search), array_values($search), $route);
|
||||
|
|
|
@ -71,12 +71,12 @@ class Picea implements LanguageRegistration
|
|||
return call_user_func($object);
|
||||
}
|
||||
catch(\Throwable $ex) {
|
||||
if (! $ex instanceof Exception\RenderHtmlException ) {
|
||||
throw new Exception\RenderHtmlException($object, $this, "An error occurred trying to render HTML view `$viewPath` : " . $ex->getMessage(), 911, $ex);
|
||||
}
|
||||
else {
|
||||
#if (! $ex instanceof Exception\RenderHtmlException ) {
|
||||
# throw new Exception\RenderHtmlException($object, $this, "An error occurred trying to render HTML view `$viewPath` : " . $ex->getMessage(), 911, $ex);
|
||||
#}
|
||||
#else {
|
||||
throw $ex;
|
||||
}
|
||||
#}
|
||||
}
|
||||
|
||||
exit();
|
||||
|
|
Loading…
Reference in New Issue