---
title: "Frontend link builder"
manual: "TYPO3 Explained"
version: "14.3"
permalink: "https://docs.typo3.org/permalink/t3coreapi:link-builder@14.3"
source: "ApiOverview/LinkHandling/LinkBuilder.rst"
rendered: "2026-10-01T15:20:05+00:00"
---

# Frontend link builder {#link-builder}

<!-- TODO: no Markdown rendering for "deprecated" -->

The build() method in \TYPO3\CMS\Frontend\Typolink\AbstractTypolinkBuilder
has been deprecated in favor of the new
\TYPO3\CMS\Frontend\Typolink\TypolinkBuilderInterface.

A link builder is a class that implements
`\TYPO3\CMS\Frontend\Typolink\TypolinkBuilderInterface` and that is called when
a link is rendered in the frontend.

There are link builders for every type of link. Which link to call is determined
by the respective class configured in global configuration, see
[typolinkBuilder](https://docs.typo3.org/permalink/t3coreapi:typo3confvars-fe-typolinkbuilder@14.3).

Register a custom link builder in your extension's
[ext_localconf.php](https://docs.typo3.org/permalink/t3coreapi:ext-localconf-php@14.3):

**EXT:my_extension/ext_localconf.php**

```php
<?php

declare(strict_types=1);

use MyVendor\MyExtension\LinkHandler\MyLinkBuilder;

defined('TYPO3') or die();

$GLOBALS['TYPO3_CONF_VARS']['FE']['typolinkBuilder']['mylinkkey'] =
    MyLinkBuilder::class;

```

The link builders provided by the Core can be found in namespace
`\TYPO3\CMS\Frontend\Typolink`. It is possible to also create a
[custom link builder](https://docs.typo3.org/permalink/t3coreapi:tutorial-typolink-builder@14.3).

Link builders are called by the [frontend link factory](https://docs.typo3.org/permalink/t3coreapi:link-factory@14.3), which
is the main entry point for generating links from PHP.

The main method of a link builder is the function
`TypolinkBuilderInterface::buildLink()`. It is called with
with the parameter array provided by the
[Core link handler](https://docs.typo3.org/permalink/t3coreapi:core-link-handler@14.3).

If the link can be rendered,
it returns a new `\TYPO3\CMS\Frontend\Typolink\LinkResult` object. The
actual rendering of the link depends on the context the link is rendered in
(for example HTML or JSON).

If the link cannot be built it should throw a
`\TYPO3\CMS\Frontend\Typolink\UnableToLinkException`.
