patternlab-node icon indicating copy to clipboard operation
patternlab-node copied to clipboard

PHP TwigRenderer Error when adding custom Twig extension via alter-twig.php

Open elvismdev opened this issue 2 years ago • 1 comments

I am using Pattern Lab Node v6.0.1 on Ubuntu Linux, with Node v18.14.0 and using the twig-php pattern engine.

I'm having trouble adding a custom Twig extension via alter-twig.php. Essentially after adding my extension and running yarn start it keep breaking into this error:

PHP TwigRenderer Error: The response callback is expected to resolve with an object implementing Psr\Http\Message\ResponseInterface, but rejected with "Error" instead

Not sure if I'm missing something else around my setup to add this extension to the Twig environment, or if this is an actual bug. Docs haven't helped much.

I'm adding screenshots for greater visual reference of my current setup and dependencies.

Expected Behavior

Register Twig custom extension and start Pattern Lab as expected without breaking into TwigRenderer errors.

Actual Behavior

After adding the extension in alter-twig.php and running yarn start to let Pattern Lab build and start the server, it keep breaking into this PHP TwigRenderer Error.

Steps to Reproduce

2023-06-09_19-38

2023-06-09_19-36

2023-06-09_19-38_1

2023-06-09_19-37

2023-06-09_20-13

elvismdev avatar Jun 10 '23 03:06 elvismdev

Rendering Twig is handled by @basalt/twig-renderer which comes with a separate vendor directory and is not providing twig-extras (https://github.com/knapsack-cloud/twig-renderer/blob/master/composer.json).

Using your own composer.json and vendor directory in the Patternlab-directory is not working.

Best is to "mock" your e.g. custom project Twig functions inside the alter-twig.php to be able to use the same template in Patternlab and your project "live rendering".

I am using directories and simple files for that to keep it more organized. Example for a trans filter: https://gist.github.com/hadl/82ba9b1a8088570163e813a594cfa5d0

hadl avatar Jul 31 '23 14:07 hadl