- WIP on picea-asset

This commit is contained in:
mcndave committed 2023-10-12 11:43:01 -04:00
1 parent 42d84796ee
commit 3ccbf6bfab
10 files changed
+88 -7

No files matched your search

+11 -2
View File
@@ -3,10 +3,14 @@
namespace Picea\Extension;
use Notes\Route\Attribute\Object\Route;
use Picea\EventTrait;
use Picea\Compiler\Context;
use Picea\Event\Extension\{ UrlBuildAssetEvent, UrlBuildUrlEvent, UrlBuildRouteEvent, UrlRegisterRouteEvent };
class UrlExtension implements Extension, FunctionExtension {
use EventTrait;
public const URLIZE_PATTERN_URL = <<<PATTERN
~(?<!href=['"])https?://[\w/._\-&?]*(?!</a>)(?=[^\w/._\-&])~s
PATTERN;
@@ -105,11 +109,15 @@ PATTERN;
public function buildUrl(string $uri = "", array $parameters = [], bool $appendVersion = false) : string
{
$this->eventExecute(UrlBuildUrlEvent::class, $uri, $parameters, $appendVersion);
return $this->setUrlParameters($this->url() . "/" . ltrim($uri, "/"), $appendVersion ? array_replace([ 'v' => $this->assetToken ], $parameters) : $parameters);
}
public function buildAssetUrl(string $uri, array $parameters = [], bool $appendVersion = true) : string
{
$this->eventExecute(UrlBuildAssetEvent::class, $uri, $parameters, $appendVersion);
return $this->buildUrl($uri, $parameters, $appendVersion);
}
@@ -150,6 +158,8 @@ PATTERN;
'class' => $class,
'classMethod' => $method,
];
$this->eventExecute(UrlRegisterRouteEvent::class, $name, $this->routes[$name]);
}
/**
@@ -195,7 +205,7 @@ PATTERN;
protected function domain() : string
{
if ( ! empty($_SERVER['HTTP_X_FORWARDED_PROTO']) || ! empty($_SERVER['HTTP_X_FORWARDED_SSL']) ) {
if ( ! empty($_SERVER['HTTP_X_FORWARDED_PROTO']) || ! empty($_SERVER['HTTP_X_FORWARDED_SSL']) ) {
$port = "";
}
else {
@@ -274,7 +284,6 @@ PATTERN;
}
$search[$item[0]] = $value ?? "";
}
$route = str_replace(array_keys($search), array_values($search), $route);