gglnx/twig-empty-coalesce

The empty test and default filter as an operator

1.0.1 2022-01-12 10:57 UTC

This package is auto-updated.

Last update: 2022-08-12 12:18:51 UTC


README

Packagist

This library adds a new operator expression to Twig with three question marks (???) to check if the left value is defined, not null and not empty. Works the same way as the empty test and the |default filter.

{% set _null = null %}
{% set _empty = '' %}

{# Null Coalesce: Output will be string(0) "" because _empty is defined and not exactly null #}
{{ dump(_undefined ?? _null ?? _empty ?? 'fallback') }}

{# Default Filter: Output will be string(8) "fallback" because _empty is defined, but an empty string #}
{{ dump(_undefined | default(_null | default(_empty | default('fallback')))) }}

{# Same as the default filter, but much more readable #}
{{ dump(_undefined ??? _null ??? _empty ??? 'fallback') }}

Requirements

  • Twig >=2.14 and Twig >=3.0
  • PHP >=7.4

Installation

The recommended way to install this loader is via Composer:

composer require gglnx/twig-empty-coalesce

You can install this library as extension in:

require_once '/path/to/vendor/autoload.php';

$twig = new \Twig\Environment($loader);
$twig->addExtension(new \Gglnx\TwigEmptyCoalesce\Extension\EmptyCoalesceExtension());