Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Symfony4 - A new way of developing web applications

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Hier ansehen

1 von 52 Anzeige

Symfony4 - A new way of developing web applications

Herunterladen, um offline zu lesen

Symfony4 is here and it is better than ever. With Flex it can be a micro framework and an amazing beast with any feature you want.

What changed from version 3, what are new best practices and why Symfony is moving PHP world forward once again you can find in this talk.

Symfony4 is here and it is better than ever. With Flex it can be a micro framework and an amazing beast with any feature you want.

What changed from version 3, what are new best practices and why Symfony is moving PHP world forward once again you can find in this talk.

Anzeige
Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Ähnlich wie Symfony4 - A new way of developing web applications (20)

Anzeige

Weitere von Antonio Peric-Mazar (20)

Aktuellste (20)

Anzeige

Symfony4 - A new way of developing web applications

  1. 1. Symfony4 A new way to develop web applications Antonio Perić-Mažar, Locastic
  2. 2. Antonio Perić-Mažar CEO @ Locastic Co-Organizer @ BlockSplit Conference Tinel Meetup antonio@locastic.com @antonioperic @antonioperic
  3. 3. Locastic ● We help clients create amazing web and mobile apps (since 2011) ○ mobile development ○ web development ○ UX/UI ○ Training and Consulting ● @locastic ● www.locastic.com ● Split, Croatia @antonioperic
  4. 4. @antonioperic Photo: Goran Leš
  5. 5. Text @antonioperic https://lifestyle.clickhole.com/the-evolution-of-man-7-new-physical-traits-that-humans-1825122200
  6. 6. Text @antonioperic
  7. 7. Text @antonioperic
  8. 8. Text @antonioperic
  9. 9. Text @antonioperic 30.11.2017
  10. 10. @antonioperic Fabien Potencier
  11. 11. We can do better ● Installing a Bundle is too cumbersome ● Remove a Bundle is too cumbersome @antonioperic
  12. 12. We can do better ● Installing a Bundle is too cumbersome ● Remove a Bundle is too cumbersome ● The standard edition is not good enough @antonioperic
  13. 13. We can do better ● Installing a Bundle is too cumbersome ● Remove a Bundle is too cumbersome ● The standard edition is not good enough ● You always have a lot of code that you are not using but it is to hard to remove it @antonioperic
  14. 14. @antonioperic Fabien Potencier
  15. 15. Symfony4 ● Starting as micro framework ● Compose your application / setup your stack ● Build API, console app, traditional web app or whatever you want @antonioperic
  16. 16. @antonioperic
  17. 17. Symfony Flex ● Composer plugin ● Auto-configuration via recipes @antonioperic
  18. 18. Symfony Flex ● Composer plugin ● Auto-configuration via recipes @antonioperic Fabien Potencier
  19. 19. Symfony flex @antonioperic
  20. 20. Symfony flex @antonioperic
  21. 21. Mailer manifest.json @antonioperic
  22. 22. Symfony flex recipies ● Two repositories ● symfony/recipies ○ maintained by Symfony Core Team and holds only recipies for Symfony components and bundles ‘opinionated’ by them ○ Can use alias ● symfony/recipies-contrib ○ Anyone can contribute ○ Cannot use alias @antonioperic
  23. 23. www.symfony.sh @antonioperic
  24. 24. Directory structure @antonioperic
  25. 25. Directory structure @antonioperic
  26. 26. Directory structure @antonioperic we say goodby to app.php and app_dev.php — this is now one standard index.php file and environment is set with environmental variable APP_ENV
  27. 27. Directory structure @antonioperic
  28. 28. Directory structure @antonioperic
  29. 29. Directory structure @antonioperic
  30. 30. Directory structure @antonioperic Flex keeps tracks of the recipes it installed in a symfony.lock file, which must be committed to your code repository.
  31. 31. Bundle-less applications ● Bundle vs no-bundle apps ● All in src folder ○ App/ namespace ○ You should separate, but no need for bundles ● Moving forward to standardisation ● It reduces the perceived complexity, also makes your code feels more decoupled from symfony ● Bundle inheritance mechanisms are deprecated in 3.4 and were removed in 4.0 @antonioperic
  32. 32. Let’s call this a small demo - Our task will be to create simple Symfony console application, a web crawler - Steps: - Create new symfony application - composer create-project symfony/skeleton my_project - Add Console component - Add Doctrine - Add Symfony Crawler component - Do some code (we will not do code, idea is just to see the flow of working with Symfony4) @antonioperic
  33. 33. Create new Symfony4 application @antonioperic
  34. 34. Create new Symfony4 application @antonioperic
  35. 35. Add components ● Composer req cli ● Composer req doctrine ● Composer req symfony/dom-crawler @antonioperic
  36. 36. Autowiring ● Introduced in Symfony 3 version ● Autowiring allows you to manage services in the container with minimal configuration ● It reads the type-hints on your constructor (or other methods) and automatically passes the correct services to each method. ● Symfony's autowiring is designed to be predictable: if it is not absolutely clear which dependency should be passed, you'll see an actionable exception. @antonioperic
  37. 37. Autowire @antonioperic
  38. 38. Autowiring @antonioperic
  39. 39. Symfony Webpack Encore ● Webpack encore is a simpler way to integrate Webpack into your application ● Step forward after AsseticBundle ● composer require webpack-encore ● It can work outside of Symfony @antonioperic
  40. 40. About me Text @antonioperic
  41. 41. DotEnv component ● The Dotenv Component parses .env files to make environment variables stored in them accessible via getenv(), $_ENV or $_SERVER. ● composer require symfony/dotenv @antonioperic
  42. 42. DotEnv component @antonioperic
  43. 43. Performance Hello world test @antonioperic Fabien Potencier
  44. 44. Performance @antonioperic
  45. 45. Performance @antonioperic Fabien Potencier
  46. 46. Updating to Symfony ● It is possible, not even to complex ● Need a little bit of time ● If you are using Symfony2.x, upgrade first to 3.4 @antonioperic
  47. 47. Symfony 4.1 improvements ● Made csrf_token() useable without forms ● Csv processor for env variables ● Display DotEnv variables in profiler ● Session improvements ● Console improvements ● Workflow improvements ● Messenger component https://symfony.com/blog/symfony-4-1-curated-new- features @antonioperic
  48. 48. Roadmap @antonioperic
  49. 49. 7 months later ● It is great feeling to works with Symfony4 ● Seems that Fabien and core team are making great progress moving Symfony forward ● I love Flex ● It is seems much more natural to navigate through new code structure and DX is much better ● Symfony community is awesome @antonioperic
  50. 50. 7 months later ● Symfony is great as microframework ● With higher level of abstraction is more better for prototyping and building things fast ● It will be much easier to start, but maybe even harder to master for newbies (symfony2 wasn’t easy to master) @antonioperic
  51. 51. Thank you! @antonioperic
  52. 52. Questions? @antonioperic

×