$30 off During Our Annual Pro Sale. View Details »

Symfony Guard - You don't need FOSUserBundle

Marko Kunic
September 28, 2017

Symfony Guard - You don't need FOSUserBundle

Talk about Symfony Guard and how we do not need FOSUserBundle, the talk was presented at my company. The code can be found here: https://github.com/kunicmarko20/guard-talk-example, if you need any kind of help feel free to ping me on twitter @kunicmarko20. Talk is inspired by great tutorials at https://knpuniversity.com that @weaverryan is creating, be sure to check them out.

Marko Kunic

September 28, 2017
Tweet

More Decks by Marko Kunic

Other Decks in Programming

Transcript

  1. @kunicmarko20
    Symfony Guard
    You don’t need FOSUserBundle

    View Slide

  2. @kunicmarko20
    FOSUserBundle
    Pros
    ● Login Page
    ● Reset Password
    ● Last Login
    Cons
    ● Login Page
    ● Reset Password
    ● Username field
    ● Overwrite everything

    View Slide

  3. @kunicmarko20
    SonataUserBundle
    Pros
    ● User Admin Class
    ● Admin Login Page
    ● Role FormType
    Cons
    ● Wrapper around
    FOSUserBundle
    ● Adds 22 fields to your User
    Entity
    ● User Profile Menu and
    Dashboard page

    View Slide

  4. @kunicmarko20

    View Slide

  5. @kunicmarko20

    View Slide

  6. @kunicmarko20
    In the rest of the talk, my focus will be on replacing SonataUserBundle and
    implementing Symfony Guard because we are using SonataAdminBundle and a
    lot of people just go with SonataUserBundle as it is easier. While removing
    SonataUserBundle we will basically be removing FOSUserBundle as well.

    View Slide

  7. @kunicmarko20

    View Slide

  8. @kunicmarko20
    The “new” Symfony Authentication component
    ● Since Symfony 2.8 (2015)
    ● Easy to implement
    ● Customize success/failure behavior
    ● Customize error messages
    ● Customize how you load user

    View Slide

  9. @kunicmarko20
    What do we need?
    ● User Entity
    ● Custom User Provider (optional)
    ● Login Form Type
    ● Controller
    ● Guard Authenticator

    View Slide

  10. @kunicmarko20
    User Entity

    View Slide

  11. @kunicmarko20

    View Slide

  12. @kunicmarko20

    View Slide

  13. @kunicmarko20

    View Slide

  14. @kunicmarko20
    User Provider

    View Slide

  15. @kunicmarko20

    View Slide

  16. @kunicmarko20

    View Slide

  17. @kunicmarko20

    View Slide

  18. @kunicmarko20
    Login Form Type

    View Slide

  19. @kunicmarko20

    View Slide

  20. @kunicmarko20
    Controller

    View Slide

  21. @kunicmarko20

    View Slide

  22. @kunicmarko20
    Authenticator

    View Slide

  23. @kunicmarko20

    View Slide

  24. @kunicmarko20

    View Slide

  25. @kunicmarko20

    View Slide

  26. @kunicmarko20

    View Slide

  27. @kunicmarko20

    View Slide

  28. @kunicmarko20

    View Slide

  29. @kunicmarko20

    View Slide

  30. @kunicmarko20
    HashPasswordListener

    View Slide

  31. @kunicmarko20

    View Slide

  32. @kunicmarko20

    View Slide

  33. @kunicmarko20
    Last Login

    View Slide

  34. @kunicmarko20

    View Slide

  35. @kunicmarko20
    The end
    https://github.com/kunicmarko20/guard-talk-example

    View Slide