Wyświetl wzór warstw, w którym prezentujesz tylko to, co otrzymałeś, jest w porządku i wszystko, ale skąd wiesz, co jest dostępne? Czy w TWIG jest funkcjonalność „wyświetl wszystkie zdefiniowane zmienne”? Czy istnieje sposób na zrzucenie zmiennej?
Rozwiązaniem, które znalazłem, szukając go, było zdefiniowanie funkcji, w której mogę użyć moich istniejących narzędzi do debugowania php , wstrzykując funkcję , ale wszystkie znalezione odniesienia obejmują te ładne dwa wiersze kodu, ale nigdzie nie określono, gdzie Umieść je. Biorąc pod uwagę fakt, że potrzebują zdefiniowanej zmiennej $ loader , próbowałem /app/config/autoload.php, ale $ loader był niewłaściwego rodzaju. Gdzie mam umieścić kod PHP w celu dodania funkcji twig?
{{ dump() }}
do zrzucania wszystkich zmiennych, zwraca pustą stronę. Czy jest inny sposób na zrzucenie zmiennej?dump
, oczywiściedump
nie stanowi to problemu. Sugerowałbym opublikowanie nowego pytania, jeśli nie możesz rozwiązać tego w inny sposób.Możesz użyć
debug
tagu, który jest udokumentowany tutaj .Edycja: Od Twig 1.5 ta
dump
funkcja została wycofana i zastąpiona nową funkcją (uwaga, jest to teraz funkcja, a nie tag). Zobacz także: zaakceptowana odpowiedź powyżej.źródło
Unknown tag name "debug"
, rozszerz konfigurację (globalnąconfig.yml
lubconfig_dev.yml
) zgodnie z opisem tutaj: github.com/symfony/symfony-docs/issues/455#issuecomment-1884861Więc działało, częściowo trochę hakerskie:
twig: debug: 1
wapp/config/config.yml
Dodaj to do config_dev.yml
sudo rm -fr app/cache/dev
print_r()
, otworzyłemvendor/twig-extensions/lib/Twig/Extensions/Node/Debug.php
i zmieniłemprint_r(
nad(
PS. Nadal chciałbym wiedzieć, jak / gdzie pobrać środowisko $ twig, aby dodać filtry i rozszerzenia.
źródło
twig: debug: 1
ponieważ dziedziczy on te informacje ze środowiska kontrolera frontowego. W przeciwnym razie możesz skończyć nieumyślnym wyświetlaniem informacji debugowania w środowisku produkcyjnym. Dopóki pracujesz w środowisku deweloperskim, jest ono domyślnie włączone i wyłączone w środowisku produkcyjnym.Jeśli używasz Twig w swojej aplikacji jako komponentu, możesz to zrobić:
Następnie w swoich szablonach:
źródło
$twig = new Twig_Environment($loader, array(...
?Jeśli używasz Twig jako samodzielnego komponentu, oto przykład włączania debugowania, ponieważ jest mało prawdopodobne, aby funkcja dump (zmienna) działała od razu po wyjęciu z pudełka
Samodzielny
Zostało to znalezione w linku podanym przez icode4food
Silex
źródło
Zrzuć wszystkie zmienne niestandardowe:
Możesz użyć mojej wtyczki, która zrobi to za Ciebie (ładnie sformatuje wynik):
Twig Dump Bar
źródło
{{ dump() }}
nie działa dla mnie.PHP
dławiki. Wydaje mi się, że poziom zagnieżdżenia jest zbyt głęboki.Wszystko, czego naprawdę potrzebujesz do
debug
szablonów Twig, jeśli używaszdebugger
rozszerzenia, to takie rozszerzenie .Wtedy wystarczy ustawić punkt przerwania i dzwonić
{{ inspect() }}
tam, gdzie jest to potrzebne. Otrzymasz te same informacje, co w przypadku,{{ dump() }}
ale w debugerze.źródło
Od Symfony> = 2.6, istnieje ładny komponent VarDumper , ale nie jest używany przez
dump()
funkcję Twiga .Aby go nadpisać, możemy utworzyć rozszerzenie:
W poniższej implementacji nie zapomnij zastąpić przestrzeni nazw.
Fuz/AppBundle/Resources/config/services.yml
Fuz/AppBundle/Twig/Extension/DebugExtension.php
źródło
Pełny przepis na szybszy dostęp (pamiętaj, że wszystkie kroki są obowiązkowe):
1) podczas tworzenia instancji Twig przekaż opcję debugowania
2) dodaj rozszerzenie debugowania
3) Używaj go tak, jak wskazał @Hazarapet Tunanyan
lub
lub
źródło
Do debugowania szablonów Twig można użyć instrukcji debug .
Tam możesz jawnie ustawić ustawienie debugowania.
źródło
Unknown tag name "debug"
błędu.Możesz edytować
i zmień
the var_dump()
funkcje na\Doctrine\Common\Util\Debug::dump()
źródło
Ponieważ większość dobrych programistów PHP lubi używać XDebug do faktycznego przechodzenia przez uruchamiany kod i obserwowania zmian zmiennych w czasie rzeczywistym, używanie go
dump()
wydaje się być krokiem wstecz do starych, złych czasów.Dlatego stworzyłem rozszerzenie Twig Debug i umieściłem je na Github.
https://github.com/delboy1978uk/twig-debug
composer require delboy1978uk/twig-debug
Następnie dodaj rozszerzenie. Jeśli nie używasz Symfony, na przykład:
Jeśli tak, jak to w konfiguracji YAML usług:
Po rejestracji możesz teraz zrobić to w dowolnym miejscu w szablonie gałązki:
Teraz możesz użyć XDebug, wykonanie zostanie wstrzymane i zobaczysz wszystkie właściwości zarówno kontekstu, jak i środowiska.
Baw się dobrze! :-RE
źródło
możesz użyć funkcji zrzutu i wydrukować to w ten sposób
ale jest też jedna fajna rzecz, jeśli nie ustawisz żadnego argumentu do funkcji dump, wypisze wszystkie dostępne zmienne , takie jak
źródło
Jeśli jesteś w środowisku, w którym nie możesz użyć tej
dump
funkcji (np. Opencart), możesz spróbować:źródło