Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF]Po co mi dekorator w nadpisywaniu usług w Extension? przecież mogę nadpisać usługę dowolnie bez dekoratora
koszykarze
post
Post #1





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 10.10.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


w dokumentacji są dwa słowa o dekoratorze:
- dekorator nadpisuje ale nie likwiduje nadpisywanej usługi
- stara nazwa (dekorowanej usługi) jest aliasem dla nowej nazwy (usługi dekoratora)


Nie rozumiem jaka jest korzyść używania dekoratora przy nadpisywaniu usług w Extension. Co mogę takiego zrobić dekoratorem czego nie mógłbym zrobić zwykłą edycją usługi? Przecież i tak dekorator będzie wywoływany starą nazwą usługi, więc nie mogę już w projekcie użyć starej wersji dekorowanej usługi.


edit.
i po co używać factory skoro mogę dowolnie edytować usługę w Extension?

Ten post edytował koszykarze 27.07.2016, 23:38:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
koszykarze
post
Post #2





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 10.10.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Oto moje wnioski:

tworząc dekorator za pomocą new DefinitionDecorator:
- mam nową usługę z nową nazwą dziedzicząc definicję old
- mam w projekcie dostęp do starej i nowej usługi
- nowa nazwa usługi nie nadpisuje starej
- używam klasy zdefiniowanej w starej usłudze
- tu chodzi tylko o udekorowanie definicji usługi, tak by można było użyć w projekcie i starej i nowej usługi.

tworząc dekorator za pomocą $container->register()->setDecoratedService :
- mam nową usługę ze starą nazwą i zmienioną definicją
- mam w projekcie dostęp tylko do tej jednej usługi
- nowa nazwa usługi nadpisuje starą
- podaję nazwę nowej klasy, tam wstrzykuję stary serwis i wykorzystuję jego funkcjonalność
- w projekcie stara usługa jest nadpisana ale w Extension i CompilerPass mogę wielokrotnie użyć definicji starej usługi do tworzenia nowych dekoratorów.
- to jest prawdziwy dekorator klas



Ten post edytował koszykarze 29.07.2016, 17:04:09
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 07:48