Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SF2][Symfony2][Symfony]symfony nadpisanie klasy wewnątrz biblioteki swoim service
symer
post 2.07.2018, 19:54:55
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 24.08.2017

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


Jak nadpisać jakąś klasę wewnątrz biblioteki questionmark.gif wiem, że można ją edytować ale nie o to mi chodzi. Tworzę jakąś usługę w moim bundle i po prostu nadpisuje jakąś wybraną klasę wewnątrz biblioteki np. FosUser. Chcę nadpisać vendor\friendsofsymfony\user-bundle\Form\Type\RegistrationFormType. swoją klasą , którą posiadam w swoim Bundle jako service

Ten post edytował symer 2.07.2018, 19:57:17
Go to the top of the page
+Quote Post
Pyton_000
post 2.07.2018, 20:07:14
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Jeśli faktycznie używasz FOSUserBundle to wywal go i napisz po swojemu. Zajmie Ci to tyle samo czasu co nadpisywanie tego.
Go to the top of the page
+Quote Post
symer
post 2.07.2018, 20:11:43
Post #3





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 24.08.2017

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


To jest przykład, że Chcę nadpisać tą klasę w FosUserBundle. Pytanie dotyczy jak nadpisać jakąś klasę wewnątrz biblioteki używając własnej service
Go to the top of the page
+Quote Post
Pyton_000
post 2.07.2018, 20:27:05
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Jeśli jest to typowy bundle do SF to może to: https://symfony.com/doc/3.3/bundles/inheritance.html

Go to the top of the page
+Quote Post
symer
post 4.07.2018, 16:17:28
Post #5





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 24.08.2017

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


Można to zrobić inaczej? Z tego co widzę, to tutaj mogę jedynie z jednego bundle coś podmienić, z którego dostaje getParent. A jak to zrobić jak Chcę pozmieniać w paru bundle ?
Go to the top of the page
+Quote Post
ohm
post 4.07.2018, 16:35:00
Post #6





Grupa: Zarejestrowani
Postów: 618
Pomógł: 143
Dołączył: 22.12.2010

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


Co do fosuser to masz w dokumentacji wszystko https://symfony.com/doc/current/bundles/FOS...ding_forms.html
Go to the top of the page
+Quote Post
Pilsener
post 6.07.2018, 12:05:07
Post #7





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Nie nadpisuje się, bo to bardzo zła praktyka.
Jeśli jakaś biblioteka nam nie pasuje to:
- szukamy innej
- forkujemy ją
- tworzymy do niej adapter
- piszemy własny kod
- i/lub korzystamy z całego spektrum innych możliwości

Niekiedy twórcy biblioteki przewidują taką możliwość, np:
https://symfony.com/doc/current/bundles/FOS...ding_forms.html

Jednak to tworzy więcej problemów, niż rozwiązuje, za kilka miesięcy nikt się nie połapie w tym.
Go to the top of the page
+Quote Post
symer
post 7.07.2018, 17:49:20
Post #8





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 24.08.2017

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


Rozumiem o co Tobie biega i masz racje. No ale Ja nie Chcę jej całkowicie nadpisać. Tylko dodać możliwości . Oto mi chodzi. Bez ruszania jakichkolwiek czynności
Go to the top of the page
+Quote Post
Pilsener
post 7.07.2018, 22:05:44
Post #9





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Cytat
Tylko dodać możliwości

No to nie ma potrzeby nadpisywania.
Tworzysz po prostu własny serwis, gdzie używasz tej biblioteki.
Przykład: masz bibliotekę Guzzle do obsługi API, ale nie ma tam metody pobierającej listę pacjentów z NFZ - robisz więc serwis, który używa Guzzle do pobrania tych danych:

  1. return $this->guzzle->get('nfz.com/listaPacjentow');


Można oczywiście Guzzle nadpisać, ale biblioteki, serwisy, klasy pisze się po to, aby były wyspecjalizowane - jak coś jest do wszystkiego, to jest do niczego.
Go to the top of the page
+Quote Post
Pyton_000
post 7.07.2018, 22:19:12
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


A możesz powiedzieć co chcesz zrobić? Bo coś mi się wydaje że próbujesz wywarzyć otwarte drzwi i próbować z komina zrobić bramę garażową dla reniferów św. Mikołaja.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 29.03.2024 - 12:23