The standard library is a set of multiple functions that are accessible from anywhere inside Wolff and can be called like native PHP functions.
The standard library can be disabled, meaning that its functions won't be available in the global namespace. To disable it, set to false the stdlib_on key in the configuration array of the system/config.php file.
path([string $path])
Returns the absolute path of the given relative path. Keep in mind that the given path is supposed to be relative to the project root folder.
path('app/controllers');
If the wolff project is located at /var/www/html/wolff, it will return /var/www/html/wolff/app/controllers.
relativePath([string $path])
Returns the given absolute path converted to a relative path. The returned path is relative to the project root folder.
relativePath('/home/usbac/Documents/wolff/app/controllers');
If the wolff project is located at /home/usbac/Documents/wolff, it will return app/controllers.
isAssoc(array $arr)
Returns true if the given array is associative, false otherwise.
Keep in mind that in the context of the function, an associative array is an array with non-numeric keys.
$arr = [
    'name' => 'Margaret',
    'age'  => 63
];
isAssoc($arr);
That should return true.
isAssoc([ 'Margaret', 'Thomas', 'Edward' ]);
That should return false.
val(array $arr[, string $key])
Returns the specified key from the given array. If the given key doesn't exists it will simply return null.
$arr = [
    'name' => 'Margaret',
    'age'  => 63
];
val($arr, 'name');
That should return the string Margaret.
The key accepts dot notation:
val($arr, 'user.name');
That should be the equivalent to $arr['user']['name'].
arrayRemove(array &$arr, $val)
Removes an element from the given array, based on its value.
It returns true if the element has been removed, false otherwise. 
$ships = [
    'mauretania', 'lusitania', 'queen_mary'
];
arrayRemove($ships, 'lusitania');
After that, the ships variable should look like this:
(
    [0] => mauretania
    [2] => queen_mary
)
Keep in mind that the array's keys are preserved even for non-assosiative arrays.
bytesToString($size[, $precision])
Returns the given size (in bytes) as a human-readable string. The default precision is 2.
bytesToString('540000')
That example should return '527KB'.
bytesToString('10000000', 3)
That example should return '9.537MB'.
The human-readable string to return can go from B (byte) to YB (yottabyte).
average(array $arr)
Returns the average value of the given numbers array.
average([ 2.5, 5.46, 4, 9 ]);
That should return 5.24.
echod(...$args)
Echo a variable and then die (for debugging purposes).
echod('Lorem ipsum dolor sit amet');
Multiple parameters can be passed.
echod('Lorem', 'ipsum', 'dolor');
printr(...$args)
Prints the given variables in a nice looking way.
$array = ['laravel', 'codeigniter', 'wolff', 'yii'];
printr($array);
This function can take any number of parameters.
printr($array, $foo, $foo2...);
printrd(...$args)
Prints the given variables in a nice looking way and then die.
$array = ['laravel', 'wolff', 'yii'];
printrd($array);
This function can take any number of parameters.
printrd($array, $foo, $foo2...);
dumpd(...$args)
Var dump a variable and then die (for debugging purposes).
$str = 'Hello world';
dumpd($str);
validateCsrf()
Returns true if the current request is safe from csrf (cross site request forgery), false otherwise.
This simply verifies that the current user is the one who made the request to the application.
if (validateCsrf()) {
    echo 'The incoming form was made by the user, continue :)';
    // Code
} else {
    echo 'You shall not pass';
}
This can be combined with the @csrf tag available in the template engine.
If you don't want to turn on the standard library just for using this function, you can make your own implementation.
function validateCsrf()
{
    // Get
    if ($_SERVER['REQUEST_METHOD'] === 'GET') {
        return isset($_GET['__token'], $_COOKIE['__token']) && $_GET['__token'] === $_COOKIE['__token'];
    }
    // Post
    return isset($_POST['__token'], $_COOKIE['__token']) && $_POST['__token'] === $_COOKIE['__token'];
}
isInt($int)
Returns true if the given parameter complies with an integer, false otherwise.
isInt('1');
isInt(1);
Both of the calls showed above will return true.
isFloat($float)
Returns true if the given parameter complies with a float, false otherwise.
isFloat('1.5');
isFloat(1.5);
Both of the calls showed above will return true.
isBool($bool)
Returns true if the given parameter complies with an boolean, false otherwise.
isBool(true);
isBool('1');
Both of the calls showed above will return true.
Only the numeric values 1 and 0, and the strings 'true', 'false', '1' and '0' are counted as boolean.
isJson(string $str)
Returns true if the given string is a json, false otherwise.
_Notice: This function modifies the json_last_error value._
$json = '{name: "John", age: 21, city: "New York"}';
isJson($json);
That will return true.
toArray($obj)
Returns the given variable as an associative array.
Useful when it is necessary to turn a multidimensional json or std object into an array.
$json = '{name: "John", age: 21, city: "New York"}';
toArray($json);
url([string $url])
Returns the given string as a local url. Useful for redirections.
Example:
url('home/sayHello');
If the project is located at http://localhost/wolff, the function will return http://localhost/wolff/home/sayHello.
If the project is located at https://www.getWolff.com, the function will return https://www.getWolff.com/home/sayHello.
getClientIP()
Returns the current client IP.
getClientIP();
In localhost it will return ::1.
local()
Returns true if the current request is running in localhost, false otherwise.
local();
getCurrentPage()
Returns the current url.
getCurrentPage();
getPureCurrentPage()
Returns the current url without parameters.
getPureCurrentPage();
If the current url is example.com/homepage?id=2 it will return example.com/homepage.
getBenchmark()
Returns the time between the page load start and the current time in seconds as float.
getBenchmark();
getPublic([string $path])
Returns the absolute public path of the given path.
getPublic('favicon.ico');
If the project is located at /var/www/html/wolff that should return /var/www/html/wolff/public/favicon.ico.
config(string $key)
Returns the specified key value from the CONFIG array, or from the environment file if env_override is set to true.
config('root_dir');
The key accepts dot notation.
config('db.password');
wolffVersion()
Returns the current version of Wolff.
wolffVersion();
//In this case it should return 3.0
You can add your own functions to the standard library this way.
system folder:<?php
namespace {
    function example() {
        //Code
    }
}
Add all the functions you want.
Add the following line to your composer.json file inside the autoload > files array
"system/yourfilename.php",
And you are done, now your functions should be available inside all of your Wolff project.
Remember to run composer dump-autoload for the changes to take effect.