SlideShare a Scribd company logo
www.accesto.com
Rozszerzalność aplikacji
Symfony
18 Kwietnia 2023 | 4Developers | Michał Kurzeja
- 12 lat rozwijam Accesto
- Wiele projektów SaaS i ratowania legacy
przed upadkiem
- Certified Symfony Developer*
Michał Kurzeja
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Znajomość
Framework
Framework
Agnostic
Rozszerzalność aplikacji Symfony
Budowa Symfony
Component, Bundle, Bridge
HTTP
Request, Response
HTTP
Request, Response
HttpKernelInterface
HttpKernelInterface
https://symfony.com/doc/current/components/http_kernel.html
Request flow
● kernel.request
● kernel.controller
● kernel.controller_arguments
● kernel.view
● kernel.response
● kernel.finish_request
● kernel.terminate
● kernel.exception
DEMO
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Event-y
Jako bazowy sposób rozszerzania
External bundle(s)
● SymfonyComponentSecurityHttpEventLogoutEvent
● SymfonyComponentSecurityHttpEventLoginSuccessEvent
● JMS
● serializer.pre_serialize
● serializer.post_serialize
● serializer.pre_deserialize
● serializer.post_deserialize
● VichUploader
● SonataAdmin
External bundle(s)
● SymfonyComponentSecurityHttpEventLogoutEvent
● SymfonyComponentSecurityHttpEventLoginSuccessEvent
● JMS
● serializer.pre_serialize
● serializer.post_serialize
● serializer.pre_deserialize
● serializer.post_deserialize
● VichUploader
● SonataAdmin
External bundle(s)
● SymfonyComponentSecurityHttpEventLogoutEvent
● SymfonyComponentSecurityHttpEventLoginSuccessEvent
● JMS
● serializer.pre_serialize
● serializer.post_serialize
● serializer.pre_deserialize
● serializer.post_deserialize
● VichUploader
● SonataAdmin
Demo
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
No ale nie samymi
eventami człowiek żyje ;)
Depedency Injection
Możliwości kontenera DI Symfony
● Bazowe, tj. Konfiguracja i pozyskiwanie serwisów
● Parametry
● Różne sposoby wstrzykiwania: konstruktor, setter
● Factory
● Shared/non-shared
● Autowire
● Autoconfigure
● Dekoratory
● Tagi
● Compiler Pass
Dekorator
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Implementacja
Rozszerzalność aplikacji Symfony
…
…
Rozszerzalność aplikacji Symfony
Serwisy tagowane
Serwisy tagowane
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Demo
Przykłady dla tagów?
Compiler pass
Pure evil :D
Compiler pass
Pure evil :D
Bardziej specyficzne
mechanizmy
Security
Voter
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Guard
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Form
Custom form type
Data transformer
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Data mapper
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Event, a jak ;)
Doctrine
Custom type
Rozszerzalność aplikacji Symfony
Rozszerzalność aplikacji Symfony
Custom function
Rozszerzalność aplikacji Symfony
Routing
Routing
Twig
Debug toolbar
Serializer
Pytania?
Dzięki!
Pytania po prezentacji? Napisz do mnie! :)
michal@accesto.com
accesto.com/blog/
Kontakt
twitter.com/accestoPL
facebook.com/accesto

More Related Content

PDF
Refactoring legacy systems using events commands and bubble contexts
PDF
Kolejkowanie w systemach multi-tenant - PHPCon 2023
PDF
Rozszerzalność Symfony - PHPCon 2023
PDF
Event-driven architecture, the easy way.pdf
PDF
Docker reverse proxy z użyciem Traefik
PDF
Symfony messenger - PHPers Summit 2019
PDF
Kubernetes - 0 do 1 - 4Developers Warszawa 2019
PDF
Strangler Pattern in practice @PHPers Day 2019
Refactoring legacy systems using events commands and bubble contexts
Kolejkowanie w systemach multi-tenant - PHPCon 2023
Rozszerzalność Symfony - PHPCon 2023
Event-driven architecture, the easy way.pdf
Docker reverse proxy z użyciem Traefik
Symfony messenger - PHPers Summit 2019
Kubernetes - 0 do 1 - 4Developers Warszawa 2019
Strangler Pattern in practice @PHPers Day 2019
Ad

Rozszerzalność aplikacji Symfony