Antonio Peric, CEO at Locastic выступил на конференции CODEiD – PHP Odessa Conf #4 с темой «Symfony4: A new way to develop applications».
«Symfony4 is here and it is better than ever. With Flex it can be a micro framework and 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.»
CODEiD – это всеукраинское сообщество PHP-разработчиков. Наша цель — создать сильное сообщество всех, кто увлечен PHP-разработкой, и принимать в нашем уютном приморском городе коллег со всей Украины и мира.
Symfony4: A new way to develop applications | Antonio Peric | CODEiD
1. Symfony4
A new way to develop web applications
Antonio Perić-Mažar, Locastic
2. Antonio Perić-Mažar
CEO @ Locastic
Co-Organizer @ BlockSplit Conference
Tinel Meetup
antonio@locastic.com
@antonioperic
@antonioperic
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
11. We can do better
● Installing a Bundle is too cumbersome
● Remove a Bundle is too cumbersome
@antonioperic
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. 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
15. Symfony4
● Starting as micro framework
● Compose your application / setup your stack
● Build API, console app, traditional web app or
whatever you want
@antonioperic
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
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
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. 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
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
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
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
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. 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
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. 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