# Extension
An extension helper allows you to add/render additional libraries and/or append some javascript code just before/after
the generated one. To understand how it works, you will dig into a simple example.
First, you need to create your own extension:
``` php
namespace My\Own\Helper\Extension;
use Ivory\GoogleMap\Helper\Extension\ExtensionHelperInterface;
use Ivory\GoogleMap\Map;
class MyExtensionHelper implements ExtensionHelperInterface
{
/**
* {@inheritdoc}
*/
public function renderLibraries(Map $map)
{
// Here, we can render additional libraries...
return ''.PHP_EOL;
}
/**
* {@inheritdoc}
*/
public function renderBefore(Map $map)
{
// Here, we can render js code just before the generated one.
return 'var before = \'before\''.PHP_EOL;
}
/**
* {@inheritdoc}
*/
public function renderAfter(Map $map)
{
// Here, we can render js code just after the generated one.
return 'var after = \'after\''.PHP_EOL;
}
}
```
Then, you need to register you extension on the map helper & simply render your map:
``` php
use Ivory\GoogleMap\Map;
use Ivory\GoogleMap\Helper\MapHelper;
use My\Own\Helper\Extension\MyExtensionHelper;
$mapHelper = new MapHelper();
$mapHelper->setExtensionHelper('my_extension', new MyExtensionHelper());
$map = new Map();
$output = $mapHelper->renderJavascripts($map);
```
The output will be:
``` html
// Google map loading...
```