Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SF][Symfony 3.4] Pojawiąjący się obiekt z innego wymiaru
LowiczakPL
post 23.04.2018, 13:52:41
Post #1





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

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


Mam dziwny problem podczas wywoływania metody, pojawia mi się obiekt, który nie ma prawa istnieć bo jest nulem

  1. /**
  2.   * Finds and displays a process entity.
  3.   *
  4.   * @Route("/editworkflow/{project}/{workflow}", name="project_work_flow_edit")
  5.   * @Route("/edittask/{project}/{workflow}/{task}", name="project_work_flow_edit_task")
  6.   *
  7.   * @Method({"GET", "POST"})
  8.   */
  9. public function editWorkFlowTaskAction(Request $request, Project $project, WorkFlow $workflow = null, ProjectTask $task = null)


Symfony zaprzecza sobie bo najpierw pokazuje że zmienna to null ale z nula powstaje obiekt nawet nie związany z ID project ale zawarty w jednej z kolekcji project, jest to pierwszy element kolejkcji $tasks.

Podczas wywołania pierwszego rutingu do życia w niezrozumiały dla mnie sposób powołany zostaje obiekt $task, który nie istnieje w pierwszym rutingu

W Request Attributes _route_params pokazuje tylko project a pozostałe 2 są nulami
ale zaraz poniżej są instancje 2 obiektów project i task a workflow dalej jest nulem

Gdyby ktoś chciał napisać że problemem jest drugi ruting to uprzedzam że podczas wielu prób testowania został usunięty i dalej było to samo, nie wpływa w żaden sposób na błąd.

Czy mieliście podobny problem, że powstawał obiekt, który nie istnieje w rutingu.

Ten post edytował LowiczakPL 23.04.2018, 13:53:32


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
Pilsener
post 23.04.2018, 21:33:56
Post #2





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

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


Spróbuję się dowiedzieć o co tu chodzi:
- pojawia się obiekt, który jest nullem (w takim razie jak może być obiektem? A może to tablica albo boolean?)
- potem jest metoda, opisana jako "znajdź i wyświetl"
- do której są dwie trasy:
- "editworkflow" nazwana "project coś tam"
- "edittask" nazwana "project coś tam"
- mapowane na encje w metodzie "edit workflow task"

Cytat
w niezrozumiały dla mnie sposób
- to może to coś wyjaśni:
http://symfony.com/doc/3.0/bundles/SensioF...converters.html

Cytat
najpierw pokazuje że zmienna to null ale z nula powstaje obiekt
- jak to możliwe? Robię dump, widzę null a potem nagle coś innego?

Nigdy nie miałem problemów z konwerterem parametrów, na bank wpisałeś zły adres albo masz gdzieś konflikt w trasach - co by było dość prawdopodobne patrząc na to, że dość lapidarnie piszesz zarówno kod, jak i posty nerdsmiley.png
Go to the top of the page
+Quote Post
LowiczakPL
post 24.04.2018, 07:22:26
Post #3





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

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


To teraz napiszę bardziej wyraźnie

1. Klikam w link dla trasy 1
2. Symfony interpretuje to jako kliknięcie w trasę 1 i uruchamia kontroler i wskazaną metodę
3. Uruchamiam Profiler
a) przechodze do Request Attributes
cool.gif _route_params pokazuje task = NULL
c poniżej lista obiektów i widzę że zaprzecza sobie pokazując task = Obiekt

4. czyli z NULA powstaje obiekt, ale jakim cudem?

Ten post edytował LowiczakPL 24.04.2018, 07:25:06


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
Pyton_000
post 24.04.2018, 07:58:38
Post #4





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

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


Zrób sobie dump w kontrolerze i będziesz miał pewność. To co w profilerze pokazuje to może być po prostu że kolejny parametr może być tego typu bo żeby w profilerze pokazało co tam siedzi to musi być odpalony i tak Reflection na tej metodzie więc jak nie ma parametru to pokaże zainicjowany obiekt.

Ergo to nie koniecznie wina samego SF a po prostu profilera i nie warto się tym przejmować.
Go to the top of the page
+Quote Post
LowiczakPL
post 24.04.2018, 15:20:06
Post #5





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

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


Od dumpa to ja zacząłem, i to dump pokazuje że istnieje obiekt, którego zmienna nie jest zadeklarowana w Route


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
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: 28.03.2024 - 23:45