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

Symfony 4 (Flex included)

Jakub Zalas
February 22, 2018

Symfony 4 (Flex included)

Symfony 4 is the next evolution of your favourite framework. While it's not a revolution, there's lots of things included that will make your life much easier and more fun!

Symfony was moved closer to industry practices with application bundles gone, simplified directory structure, or environment variables preferred over configuration parameters. Both version 2 and 3 has already introduced some nice features, like autowiring, that contributed to what Symfony 4 has become. As a result there is less Symfony specific concepts and more standard practices. It's easier to learn, easier to configure, easier to install and deploy, and finally easier to master. If that wasn't enough, our workflow was much improved with the introduction of Symfony Flex, a new way to install and manage Symfony applications. It's time to say goodbye to both Symfony installer and the Standard Edition!

Jakub Zalas

February 22, 2018
Tweet

More Decks by Jakub Zalas

Other Decks in Programming

Transcript

  1. Symfony 4
    (Flex included)
    Symfony UK
    London
    Meetup
    Jakub Zalas
    @jakub_zalas
    22 Feb 2018

    View Slide

  2. Symfony 4 != Symfony Flex

    View Slide

  3. Symfony 4 != Symfony Flex

    View Slide

  4. What is Symfony 4?
    Symfony 4.0 =
    (Symfony 3.4 - deprecated features - long term support - PHP 5 support)
    + Flex by default
    Symfony 3.4 = (Symfony 3.3 + new features + new deprecations)
    Symfony 3.3 = …

    View Slide

  5. What is Symfony Flex?
    Symfony Flex helps developers create Symfony applications,
    from the most simple micro-style projects
    to the more complex ones with dozens of dependencies.
    Composer plugin for Symfony
    https://github.com/symfony/flex

    View Slide

  6. Creating a new
    project
    https://flic.kr/p/FERV6

    View Slide

  7. Symfony 2.0

    View Slide

  8. Symfony 2.1
    Option 1
    Option 2

    View Slide

  9. Symfony 2.3

    View Slide

  10. Symfony 3.3

    View Slide

  11. Symfony 4.0

    View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. View Slide

  18. Project structure
    https://flic.kr/p/RCunfT

    View Slide

  19. Symfony Standard Edition
    3.4
    Symfony
    4.0

    View Slide

  20. View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. View Slide

  25. Size matters?
    Version Package Disk Files
    Lines of
    code
    # of deps
    4.0 symfonny/skeleton 14M 2.5k 195k 21
    3.4 symfony/framework-standard-
    edition
    58M 8.9k 682k 38 + 50

    View Slide

  26. Size matters?
    Version Package Disk Files
    Lines of
    code
    # of deps
    4.0
    symfonny/skeleton 14M 2.5k 195k 21
    symfony/website-skeleton 62M 9.7k 720k 88
    symfony/framework-standard-
    edition
    — — — -
    3.4
    symfonny/skeleton 15M 2.8k 212k 23
    symfony/website-skeleton 64M 10k 748k 89
    symfony/framework-standard-
    edition
    58M 8.9k 682k 38 + 50

    View Slide

  27. https://speakerdeck.com/fabpot/flex

    View Slide

  28. https://speakerdeck.com/fabpot/flex

    View Slide

  29. Understanding
    Symfony Flex
    https://flic.kr/p/GKSNas

    View Slide

  30. View Slide

  31. View Slide

  32. View Slide

  33. Composer
    symfony.sh
    (Symfony Flex server)
    Symfony Flex
    packagist.org

    View Slide

  34. View Slide

  35. View Slide

  36. View Slide

  37. View Slide

  38. View Slide

  39. View Slide

  40. View Slide

  41. View Slide

  42. Using contrib recipes

    View Slide

  43. Working with
    Symfony 4
    https://flic.kr/p/GKSNas

    View Slide

  44. View Slide

  45. View Slide

  46. View Slide

  47. View Slide

  48. View Slide

  49. View Slide

  50. Since
    3.3

    View Slide

  51. Since
    3.3

    View Slide

  52. View Slide

  53. View Slide

  54. View Slide

  55. View Slide

  56. View Slide

  57. View Slide

  58. View Slide

  59. View Slide

  60. View Slide

  61. View Slide

  62. View Slide

  63. View Slide

  64. View Slide

  65. View Slide

  66. There’s more

    View Slide

  67. Helping the service container

    View Slide

  68. Parameter binding Since
    3.4

    View Slide

  69. Service argument binding Since
    3.4

    View Slide

  70. Autoconfiguration Since
    3.3

    View Slide

  71. Autoconfiguration Since
    3.3

    View Slide

  72. Autowiring debug Since
    3.4

    View Slide

  73. Runtime environment variables Since
    3.2
    SYMFONY__* style environment variables were deprecated in Symfony 3.3
    and removed in Symfony 4.0

    View Slide

  74. Runtime environment variables Since
    3.4

    View Slide

  75. Recreating the Standard Edition

    View Slide

  76. Frontend tools integration Since
    3.3

    View Slide

  77. Rapid application development Since
    3.4

    View Slide

  78. There’s more to come…
    http://symfony.com/blog/category/living-on-the-edge

    View Slide

  79. @jakub_zalas @jakzal
    Thank you.
    Contact me:

    [email protected]

    View Slide