JavaScript for PHP Geeks: ReactJS (with Symfony)


What you'll be learning

ReactJS! Woohoo! With ES6 and webpack behind us, we can finally have some serious fun! In this course, we'll introduce ReactJS, get it working through Webpack and starting building a real application. Yes, a real application! We'll identify a set of strategies & best practices to follow to put this super powerful tool under your control!

  • Components & React Architecture
  • Jumping into JSX!
  • All about props & state
  • The component data from: from top to bottom
  • Actual best-practices for creating sane apps
  • Smart/container vs Dumb/presentation components
  • PropTypes!
  • Tricks for managing state without mutating it
  • Making API Calls back to Symfony (and authentication) with fetch
  • Working with server-side validation
  • Handling collections in React
  • Dealing with forms (refs vs controlled inputs)
return (
    <ReactJSSymfonyTutorial onWatch={this.handleMadNewSkills}

Your Guides

Frank de Jonge Ryan Weaver

Buy Access
Login or register to track your progress!

Questions? Conversation?

  • 2019-07-02 Skylar Scotlynn Gutman

    Perfect, That is the same conclusion that I came up with.

    Thank you for everything!

  • 2019-07-02 weaverryan

    Hey Skylar Scotlynn Gutman!

    Sorry for the super slow reply - this got on my list... and I got busy 😇

    It depends... on what's inside layout.js :). The short answer is that each entry should import all the stuff that it needs. I typically have one normal entry called "app", which is my "layout" entry - contains any CSS and JS that I need globally. I include this in each page. Then, for my other, page-specific entries, I do not import "app". Instead, I import whatever code I need to get my job done. If the "app" entry and other entries both import the same code, then it may get "split". Also, back with the shared entry, you were "incentivized" to import libraries inside your "layout" entry that you maybe didn't even need in that specific entry, but that you knew would be used by other entries and you wanted that code to be "shared". With the splitEntryChunks(), that's not the case anymore: make each entry/file as lean and mean as you can (only importing the stuff you really need) and let Webpack figure out the splitting.

    Let me know if that helps!


  • 2019-06-17 Skylar Scotlynn Gutman

    Hey guys,

    Thank you for so much great information!

    I would like to know how you would refactor shared code included in webpack.config.js with this line: .createSharedEntry('layout', './assets/js/layout.js') since it does not work with .splitEntryChunks() . Would you import layout.js to each entry point?

  • 2018-12-24 Victor Bocharsky

    The course is completely released, guys! Thank you for your patience!


  • 2018-12-23 michaelpenna

    felipyamorim yes

  • 2018-11-27 Victor Bocharsky

    Hey Chen,

    Yes, we do have VueJS on our TODO list, but unfortunately we don't have any certain plans when it might be released, most probably next year when we'll release new JS courses so this one would be the 1st in the queue I think :)

    Meanwhile, your vote for this course is counted. Thank you for your patience!


  • 2018-11-26 Chen Dong

    Hi Team, will there be any VueJS related courses in the future?

  • 2018-08-12 Amy

    Great information. Since last week, I am gathering details about react js experience. There are some amazing details on your blog which I didn’t know. Thanks.

  • 2018-07-11 Victor Bocharsky

    Hey Vinny,

    I can, but approximately :) We're trying to release a video every day, but we do not release videos on weekends. And it's about 25 videos are left until the end. So, this course should be completely released in 5-6 weeks, but once again, it's approximately. Thanks for your patience!


  • 2018-07-11 Vinny

    Can you tell me (approx) when the ReactJS (with Symfony) course will be completely done ?

  • 2018-06-18 Victor Bocharsky

    Hey cybernet2u

    Actually yes! Check it out!


  • 2018-06-16 cybernet2u

    any news ?

  • 2018-06-06 Diego Aguiar

    Soonish! :)

  • 2018-06-06 Gilles Hoarau

    Ok let's go! (pleeeaaaseee)

  • 2018-06-04 weaverryan

    Hey Knayz!

    That's correct :). React talks to Symfony via API points that you've built into your API. For authentication, there are MANY ways to do it, unfortunately (because it gets confusing). OAuth is one of the more powerful / flexible ways, but also more complex. It just depends on what you need. A lot of times you can just use a session cooke like normal authentication. Or, you can use a simpler token-based authentication.


  • 2018-06-04 Chris

    Please rush it, I want to see this course, so badly.
    I hope you will treat in some detail the authentication part, which I'm curious in. Will you store the JWT in localStorage or in a cookie, as I think that you will use JWT for authentication?

  • 2018-05-30 Knayz

    Hi Victor Bocharsky, I think it will be making API on Symfony 4 and I hope with Oauth. As for React it will be pulling all data from API. Am I right?

  • 2018-05-29 weaverryan

    Hey Simon Carr!

    I'm working on it right now! But, yes, this tutorial has been way too slow - it's been very difficult to write - finding & translating the front-end best practices so they apply better to us, back-end developers. Also, the fact that we're doing a React tutorial now and not a Vue tutorial isn't a vote for React versus Vue - both are great and seem to be have a *lot* of traction. I would recommend either of these :).


  • 2018-05-29 Victor Bocharsky

    Hey Wazir,

    Working on it right now! And yes, it would be definitely Symfony 4 in this screencast, but psssss.... this is a top secret info, don't tell anyone ;)

    Thanks for your patience!


  • 2018-05-29 Victor Bocharsky

    Hey Kevin,

    Yes... and we're still releasing Doctrine tutorial: . But there's work in full swing on this ReactJS tut in our private repo! So we're really working on it right now, and I'm pretty sure this tutorial will be the next one from Ryan.

    Thanks for your patience!


  • 2018-05-27 kevin huang

    It's almost half of 2018 now . ('・ω・')....

  • 2018-05-27 Wazir

    Impatiently waiting for this course. Just want to re-design my Symfony project's front-end in React, which is now Twig with old fashion JS. Would be great to use React with Symfony 4, so hope to see this course soon.

  • 2018-05-25 Simon Carr

    I still can't wait for this video, but unfortunately in my need for information on JS Frameworks and while waiting for this series, I found VueJS and haven't looked back. I don't want to be a one trick pony, so I will be back for this series, but at the moment we are moving quite a bit of our PHP eco system over to VueJS. As paying customer, I am starting to get tired of the wait, we need you to lay an egg on this course quickly.

  • 2018-05-24 Michał Nowacki


  • 2018-04-23 Victor Bocharsky

    Hey Kevin,

    Yeah, sorry about delays. But I have good news for you! We're working on this tutorial right now with our awesome co-author, and we're going to start releasing this course after Doctrine one. Thanks for your patience!


  • 2018-04-23 kevin huang

    It's one third of 2018 now. ('・ω・')....

  • 2018-04-18 weaverryan

    Nothing yet felipyamorim! It's my fault - this has been a tough one to schedule in! But, I'm hoping to make it the next tutorial, after the one we started releasing today (Symfony and Doctrine).


  • 2018-04-18 felipyamorim

    Nothing yet??

  • 2018-03-13 Diego Aguiar

    Hey @Andrew

    I can't give you a specific release date, but what can I tell you is that this course is not frozen anymore!
    You can subscribe to our mailing list, or click on "Notify me.." button, so you receive an email as soon as this course is published.


  • 2018-03-12 Andrew

    Are we there yet? :(

  • 2018-02-19 Victor Bocharsky

    Hey Greg,

    Unfortunately we don't have strict timeframes, but I think this course will definitely be released after Webpack Encore one, on which we're working on right now. The reason is that we need Webpack Encore for ReactJS course. Thanks for your patience!


  • 2018-02-17 Greg Maka

    Do you guys have a timeframe when this course will be released?

  • 2018-02-13 Xeyos

    Surely it will be very useful, I would have however preferred the integration with VueJS that seems indeed excellent.

  • 2018-02-06 Diego Aguiar

    Haha, that was funny ;)

    Sorry for delaying this tutorial, but right now we are focused on releasing Symfony4 tutorials, I hope you can enjoy them as well


  • 2018-02-06 Vince Liem

    Still can't wait for this course. But I said that too a few months ago... So the parameters are wrong and I can wait... But not this time

    Can't wait :D

  • 2018-01-28 Konrad

    Looking forward to this course!

  • 2018-01-19 Victor Bocharsky

    No problem ;) This means users are really interested in this course which is good, so maybe this course will be released faster. But anyway, we're going to release a few Symfony 4 related tutorials at first which makes sense.


  • 2018-01-19 Juan Luis Garcia

    I'm sorry Victor!
    I have not seen that comment .... =(

  • 2018-01-18 Victor Bocharsky

    Hey Juan,

    I just replied about it a few hours ago here ;)

    Unfortunately, there's no plans to release it very soon, we're going to release a few other tutorials before start planning this one.


  • 2018-01-18 Juan Luis Garcia

    when is this course release?

  • 2018-01-18 Victor Bocharsky

    Hey Nacer,

    We're going to release a few tutorials before it, then this course is next for planning. See the order of our upcoming tutorials here: . But it's difficult to say an approximate release date, sorry.


  • 2018-01-18 Nacer

    It's for when this course ?

  • 2017-12-08 Mykel Chang

    Symfony 4 + ReactJS : Can't wait for it <3

  • 2017-11-20 weaverryan

    :) I'm definitely interested in this. React first... then we'll see what interesting things we can do from there

  • 2017-11-17 Knayz

    What about flux or redux?

  • 2017-10-24 Knayz

    Hey @weaverryan!
    Thank you, for your most full replay on my question. I fully agree with you. So let's start waiting for 2018!

  • 2017-10-24 weaverryan

    Hey Knayz!

    Yes, that's my decision... or my fault perhaps :). We added a note about it to the top of this tutorial. Basically, with Symfony 4 so close (its release is in about 1 month), we want to create a React tutorial that will be the most helpful into the future for people. That means we need to delay it until the beginning of 2018 so that it can be created using Symfony 4. I apologize for the delay - that's 100% my fault. We should not have even advertised this course until we were quite close to releasing it. We're working to do that better in the future and give people much more accurate release dates.


  • 2017-10-24 Knayz

    Diego Aguiar you mean it is true. Earlier React course was planning after Php-Unit course and it was second in roadmap. Now it is fourth in queue. Please, confirm or refute this news.

  • 2017-10-23 Diego Aguiar

    Haha, hey Knayz! Thanks for your honest words

    Good things are worth waiting, aren't they? :)

  • 2017-10-23 Knayz

    Oh, No!
    I see you have inserted 2 more new courses before React in roadmap. My heart is broken. I can't get through that news.

  • 2017-10-16 Victor Bocharsky

    Hey Mohammad,

    See Ryan's comment 3 days ago: ;)


  • 2017-10-15 Mohammad Althayabeh

    Any updates on this course?

  • 2017-10-13 Christophe Lablancherie

    Hey :)

    Better late than never ^^, i will wait :D

  • 2017-10-13 weaverryan

    Yo Christophe Lablancherie!

    I recently added a note about this... unfortunately, at this point, we need to wait until Symfony 4 is released to do this tutorial "correctly". That means we're targeting this tutorial for early 2018. It will be one of our big priorities... just as soon as Symfony 4 is out (we don't want to build it on Symfony 3... when 4 is now just about 1 month away!)

    Thanks for your patience!

  • 2017-10-12 Christophe Lablancherie

    Hi :)

    Is this course nearly coming ? ^^'

  • 2017-09-27 weaverryan

    We've added that to our idea list. I think it makes a lot of sense to talk about Vuejs also!

  • 2017-09-27 Victor Bocharsky

    Hey Felipy,

    We're going to release a few different from JS courses first: Ansistrano deploy and PHPUnit testing, then this one on our way. You can track our rough roadmap of upcoming courses here:


  • 2017-09-26 felipyamorim

    after release of webpack, what's the plan for this course ? :D

  • 2017-09-26 SKS

    And with Vuejs? Working with Vuejs is easy with Laravel but not in Symfony.

  • 2017-09-19 Lopoi Popoi
  • 2017-07-31 Victor Bocharsky

    Hey Burak,

    We start releasing Webpack course this week. Actually, the first release will be today :) Then we'll start working on this one about ReactJS. We can't start with it until Webpack course is released, because most probably we will need Webpack features in that course. So you can track Webpack release to see the progress.

    Cheers and thanks for your patience!

  • 2017-07-31 Burak Demir

    When will it be published? I'm looking forward to.

  • 2017-07-19 weaverryan

    Thanks for your patience - sorry this one has been slow O:)

  • 2017-07-19 Lucas Vilela

    Hey Guys ! Looking forward for this course.. almost every month I come here to check if is available !!
    Let's do it !!


  • 2017-07-05 Victor Bocharsky

    Hey Juan,

    We don't have a release date yet, but this course will be released *after* the one about Webpack. We're working on EasyAdminBundle and Ansistrano tutorials right now, so the next should be a few JS tuts, but anyway Webpack course will be first.


  • 2017-07-04 Juan Luis Garcia

    Hi Ryan!!
    When is this course available?

  • 2017-06-01 weaverryan

    Yo Greg!

    Hmm, I don't think we'll talk about React Native... but if there's some specific question/problem that you're wondering about related to the Symfony endpoint/API and how it would communicate with React Native (e.g. authentication) ... that might be interesting. Let us know!


  • 2017-05-31 Greg

    Hi guys, any chance you will cover using React Native for mobile app development with a Symfony endpoint?

  • 2017-05-31 weaverryan

    Hi Victor!

    We'll start work on the Webpack tutorial very soon, then this will be after. Unfortunately, this tutorial may still be a couple months away. But, I'm going to do my best!


  • 2017-05-29 Victor Boutte'

    whats the status of this course? When will it be available?

  • 2017-05-29 Victor Bocharsky

    Hey guys,

    Sorry for the delay, unfortunately we don't have a specific release date for this course yet and were releasing a few other non-JS tutorials lately. But anyway, this course will be released only after the "JavaScript for PHP Geeks: Webpack for Module Loading Awesomeness" course. You may press "Notify me when course is available" button to be notified as soon as possible.


  • 2017-05-27 Jon Kamke

    How soon is soon : (

  • 2017-05-09 Huy Nguyen1

    i want this so bad

  • 2017-05-05 Victor Bocharsky

    Hey Romolo,

    It will come out after "JavaScript for PHP Geeks: Webpack for Module Loading Awesomeness", but before we're about to release EasyAdminBundle course. We also have a roadmap of upcoming screencasts in case you're interested in it:


  • 2017-05-05 Romolo Asromo

    I really hope this course comes out soon!

  • 2017-03-22 weaverryan

    Ha! It'll be a bit longer, sorry :). We have Ansible, PHP7 and webpack tutorials coming first! But, I *really* am excited to get to this one...

  • 2017-03-22 Kebabra Abdessamad
  • 2017-03-20 Victor Bocharsky

    Hey Symfony Reacter,

    We're almost there :) Right now we're finishing ES6 tutorial and then we plan to start working on ReactJS stuff. You can press "Notify me when course is available" button and stay tuned with us ;)


  • 2017-03-20 Symfony Reacter

    Are we there yet?

  • 2017-02-21 Jeremy Jumeau

    Looking forward for this course and get the best of React+Symfony! Thank you Ryan and your team for teaching us to go further and further with so much enthousiasm.

  • 2017-01-01 Christopher Jackson

    Please I am also very interested in this course!!!

  • 2016-12-08 Victor Bocharsky

    Hey Christophe,

    You're right, haha. This course was frozen... but Ryan recently have started to work actively on it, so we really will have it soon ;)


  • 2016-12-08 Christophe Lablancherie


    This course is always planned ? ^^ i've seen thoses for JS and still planning sinces 2 years, maybe nearly three ^^'