// Register the extension
$twig->addExtension(newPathExtension($basePath));// Or just register use this shortcut:
$twig->addFunction(newTwigFunction('path',fn(string$path):string=>$this->basePath.'/'.$path));
<a class="button" href="{{path('home')}}">Retour à la page d'accueil</a>
Because path concatenation cannot always be resumed to a simple string concatenation, exposing a `path(string)` function would hide this base path.
```php
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
class PathExtension extends AbstractExtension {
private string $basePath;
public function __construct(string $basePath) {
$this->basePath = $basePath;
}
/**
* @return TwigFunction[]
*/
public function getFunctions(): array {
return [new TwigFunction('path', fn(string $path): string => $this->basePath . '/' . $path)];
}
}
```
```php
// Register the extension
$twig->addExtension(new PathExtension($basePath));
// Or just register use this shortcut:
$twig->addFunction(new TwigFunction('path', fn(string $path): string => $this->basePath . '/' . $path));
```
```twig
<a class="button" href="{{ path('home') }}">Retour à la page d'accueil</a>
```
Because path concatenation cannot always be resumed to a simple string concatenation, exposing a
path(string)
function would hide this base path.