Twig check if file exists

wobsoriano picture wobsoriano · Jul 16, 2015 · Viewed 22.2k times · Source

Hello so I am using slim framework and twig, and here is my current code in php:

$filename = '/path/to/foo.txt';
if (file_exists($filename)) {
    echo "The file $filename exists";
} else {
    echo "The file $filename does not exist";
}

Now I want to put the if statement in my template file. How can I use the file_exists function in my twig template so I can check whether a file exists?

Answer

Anonymous picture Anonymous · Jul 16, 2015

You can create your own function or test and just pass the arguments to the PHP function.

$test = new Twig_SimpleTest('ondisk', function ($file) {
    return file_exists($file);
});

And then in your template:

{% if filename is ondisk %}
    blah
{% endif %}

Unfortunately is exists sounds weird in English. Perhaps a function would make more sense.