MOON
Server: Apache
System: Linux server1.studioinfinity.com.br 2.6.32-954.3.5.lve1.4.90.el6.x86_64 #1 SMP Tue Feb 21 12:26:30 UTC 2023 x86_64
User: artinside (517)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/artinside/mpita.artinside.com.br/vendor/league/plates/doc/content/engine/functions.md
+++
title = "Functions"
linkTitle = "Engine Functions"
[menu.main]
parent = "engine"
weight = 4
+++

While [extensions]({{< relref "engine/extensions.md" >}}) are awesome for adding additional reusable functionality to Plates, sometimes it's easier to just create a one-off function for a specific use case. Plates makes this easy to do.

## Registering functions

~~~ php
// Create new Plates engine
$templates = new \League\Plates\Engine('/path/to/templates');

// Register a one-off function
$templates->registerFunction('uppercase', function ($string) {
    return strtoupper($string);
});
~~~

To use this function in a template, simply call it like any other function:

~~~ php
<h1>Hello <?=$this->e($this->uppercase($name))</h1>
~~~

It can also be used in a [batch]({{< relref "templates/functions#batch-function-calls">}}) compatible function:

~~~ php
<h1>Hello <?=$this->e($name, 'uppercase')</h1>
~~~