Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][Symfony 3.4] Pojawiąjący się obiekt z innego wymiaru
Forum PHP.pl > Forum > PHP > Frameworki
LowiczakPL
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.
Pilsener
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
LowiczakPL
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?
Pyton_000
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ć.
LowiczakPL
Od dumpa to ja zacząłem, i to dump pokazuje że istnieje obiekt, którego zmienna nie jest zadeklarowana w Route
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.