Koflikt sygnatury Trait i Klasy |
Koflikt sygnatury Trait i Klasy |
15.12.2017, 01:33:14
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) |
Klasa rodzica ma metodę response() i ma ją też trait, niestety sygnatury (i także treść metody są zupełnie różne).
Dziecko dziedziczy po rodzicu i używa trait i powoduje to problem:" Cytat Declaration of Dingo\\Api\\Routing\\Helpers::response() should be compatible with Optimus\\Bruno\\LaravelController::response($data, $statusCode = 200, array $headers = Array) Jak się można domyśleć po przestrzeniach nazw nie mam możliwości ingerencji bezpośrednio w kod tych klas. Da się to jakoś zgrać? Niestety use + insteadof tu nie zadziałało bo można to użyć tylko dla Trait. Ten post edytował markonix 15.12.2017, 01:33:38 -------------------- |
|
|
15.12.2017, 22:46:34
Post
#2
|
|
Grupa: Zarejestrowani Postów: 280 Pomógł: 46 Dołączył: 23.03.2010 Ostrzeżenie: (0%) |
Ciekawy problem, aż musiałem sam sprawdzić jak to można rozwiązać.
Pierwsza rzecz, którą spróbowałem to użycie "as" aby zmienić nazwę metody z traits. Niestety to nie pomogło. Przykład: https://ideone.com/ddRQZO Dodałem własną metodę, która używa metody z klasy abstrakcyjnej i wtedy śmiga poprawnie. Przykład: https://ideone.com/tL0CoG Więc jakieś rozwiązanie jest na to choć nie wygląda na jakieś dobre. Szkoda, że ten pierwszy przykład z samym "as" nie działa. |
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 23:29 |