Flag of Ukraine
SymfonyCasts stands united with the people of Ukraine

Integrate (Vue)JS Components in a Symfony App, add E2E Tests with Panther

Video not working?

It looks like your browser may not support the H264 codec. If you're using Linux, try a different browser or try installing the gstreamer0.10-ffmpeg gstreamer0.10-plugins-good packages.

Thanks! This saves us from needing to use Flash or encode videos in multiple formats. And that let's us get back to making more videos :). But as always, please feel free to message us.


SymfonyCon 2018 Presentation by Kévin Dunglas

Thanks to the new capabilities of the web platform (web components, Progressive Web Apps…) and the rise of modern JS libraries (Vue, React, Angular) almost all modern Symfony applications must leverage the frontend ecosystem. Symfony 4 embed many gems that make it easy to integrate modern JavaScript within the framework, including the first component entirely written in JS: Webpack Encore. In Symfony 4.2, another component that is super convenient for apps containing JS code has been released: Panther, a PHP library compatible with BrowserKit, that drives real web browsers to create end-to-end (E2E) tests with ease. During this talk, I'll show you how to cleanly integrate modern JavaScript code with Symfony and Twig and how to test such applications using Panther. The examples will use VueJS, because it’s probably the easiest JS framework to get started with as a PHP developer, but all the tips and tricks will be applicable with other libraries such as React or Angular.

Leave a comment!

Login or Register to join the conversation
Krzysztof K. Avatar
Krzysztof K. Avatar Krzysztof K. | posted 4 years ago

Great talk, I use similar approach, but in addition I have decided to use a tiny wrapper around Vue components: https://github.com/karol-f/... to utilize the power of Web Components :D


Hey Krzysztof K.

Yeah, it's impressive how fast (and easy?) Keving managed to develop a real time application!

Cat in space

"Houston: no signs of life"
Start the conversation!