In welcher Datei – Original .blade.php oder kompilierte Blade-Datei? Sie können es definitiv nicht im Original festlegen – weil es nicht ausgeführt wird.
– LazyOne
13. Februar 2015 um 13:50 Uhr
Danke für die schnelle Antwort, ich wusste nicht, dass es separat kompiliert und generiert wurde. Ja, ich beziehe mich auf die ursprüngliche Blade.php-Datei. Was ist dann der beste Weg, um PHP-Variablen in den kompilierten Dateien zu debuggen?
– Don F
13. Februar 2015 um 13:55 Uhr
Ich denke, PhpStorm hat einige Probleme mit dem Debuggen tatsächlich kompilierter Blade-Dateien (aufgrund der Art und Weise, wie Dateien benannt wurden und wie IDE funktioniert: Solche Dateien haben keine Erweiterung und IDE kann sie nicht zuordnen PHP files Dateityp, um Breakpoints setzen zu können etc.). Bitte beziehen Sie sich auf dieses Ticket: youtrack.jetbrains.com/issue/WI-25835
– LazyOne
13. Februar 2015 um 13:58 Uhr
Die Blade-Syntax kann vom Debugger nicht ausgewertet werden (weil der Interpreter in Laravel implementiert ist). Während PHPStorm bis zu einem gewissen Grad Unterstützung für Blade-Templating bietet, kann es keine Breakpoints innerhalb von a platzieren blade.php Datei, es sei denn, der Code ist darin enthalten <?php ... ?>.
in Ihre Blade-Datei funktioniert ziemlich gut. Selbst in meinen Tests springt PHPstorm in manchen Fällen zum nächsten PHP-Statement.
Warum das funktioniert:
Laravel verarbeitet die Blade-Datei zu einer normalen PHP-Datei im Cache-Ordner. Aber die PHP-Anweisung xdebug_break(); werden dorthin übertragen und bewirken, dass das Programm an der gewünschten Position (in der Cache-Datei) anhält.
Wow – ich hatte gerade die Gelegenheit, das zu benutzen und es funktioniert großartig – danke Alex
– Don F
23. Dezember 2015 um 20:27 Uhr
Ich fand, dass dieser Trick auch zum Debuggen von .thtml-Dateien in PHPstorm funktioniert. Danke vielmals!
– Versuchen Sie es härter
24. November 2016 um 0:15 Uhr
Derselbe Trick funktioniert in XDebug mit jeder IDE, die ihn unterstützt. Ich verwende es mit UltraEdit Studio, obwohl es in Ihrer bevorzugten IDE funktionieren sollte, sogar in meiner am wenigsten bevorzugten Eclipse.
– David A. Gray
21. Dezember 2017 um 5:12 Uhr
So süß. Funktioniert auch in Gitpod (THEIA)! php-Datei mit einem Hash für einen Namen wird geöffnet und die gesamte Blade-Logik wird konvertiert php Stichworte. Danke @Alex!!
– Apena
21. Januar 2021 um 23:24 Uhr
budvic
Gehen Sie zu Ihren Jetbrains-IDE-Einstellungen (Strg+Alt+S; ⌘+,; etc.)
Sprachen & Frameworks > PHP > Debuggen > Vorlagen
Geben Sie in Blade Debug > Cache-Pfad ein: \path\to\app\storage\framework\views
Um diese Frage zu schließen – phpstorm unterstützt diese Funktionalität derzeit nicht. Eine vom Jetbrains-Support bereitgestellte Problemumgehung bestand darin, * .blade.php zu Dateitypzuordnungen unter PHP in den IDE-Einstellungen hinzuzufügen, aber es funktionierte immer noch nicht für mich, nachdem ich dies getan hatte.
Es scheint, dass sie als Antwort auf meine Anfrage ein youtrack-Ticket erstellt haben. Wenn Sie Jetbrains ermutigen möchten, daran zu arbeiten, stimmen Sie bitte hoch: youtrack.jetbrains.com/issue/WI-26476
HPSeite
Selbst wenn Sie die IDE dazu bringen können, Haltepunkte für die Blade-Dateien zu aktivieren, funktioniert dies nicht – Laravel erstellt eine PHP-Datei aus der Blade-Datei – es ist diese Datei, die schließlich verwendet wird, wenn das Skript ausgeführt wird – nicht die Blade-Datei.
Eine Problemumgehung
Dies funktioniert für PHPStorm – aber etwas Ähnliches könnte in anderen IDEs möglich sein.
Laravel (5) speichert die zusammengesetzten Dateien unter storage/framework/views. Diese Dateien haben zufällig generierte Dateinamen – daher kann es schwierig sein, die gewünschte Datei zu finden. Eine einfache Möglichkeit besteht darin, alle diese temporären Dateien zu löschen und dann die Seite zu aktualisieren, die Sie debuggen möchten. Eine neue Datei wird erstellt. In PHPstorm können Sie mit der rechten Maustaste auf die Datei klicken und den Erweiterungstyp der Datei auswählen. (Bei anderen IDEs bin ich mir nicht sicher)
Sie können nun Haltepunkte setzen. Natürlich müssen Sie die Änderungen in der Blade-Datei vornehmen – aber das wird Ihnen zumindest dabei helfen, herauszufinden, was falsch ist.
**Update: Die Lösung von Alex ist einfacher! **
Ich habe mir einen noch besseren Hack ausgedacht, der bedingtes Debugging unterstützt, damit Sie nicht für den Rest der Ewigkeit mit XDebug_break stecken bleiben.
Diese Aussage hat ein paar ungewöhnliche Merkmale.
Da Blade-Dateien keine use-Direktiven haben, ist der Methodenname \app\utils\DebugLogger::EnableForBlades vollständig qualifiziert.
Da Blade-Dateien anscheinend keine Unterstützung für den üblichen Codeblockierungsmechanismus haben, enthält die einzeilige Anweisung keine geschweiften Klammern und wird durch ein Semikolon abgeschlossen.
EnableForBlades ist eine statische Methode, die eine Umgebungsvariable (eine der in .local.env definierten) abfragt und „True“ zurückgibt, wenn diese Variable „True“ ergibt. Andernfalls wird False zurückgegeben und xdebug_break wird unterdrückt.
12568800cookie-checkPHPstorm – Es können keine Breakpoints in den blade.php-Dateien gesetzt werdenyes
In welcher Datei – Original
.blade.php
oder kompilierte Blade-Datei? Sie können es definitiv nicht im Original festlegen – weil es nicht ausgeführt wird.– LazyOne
13. Februar 2015 um 13:50 Uhr
Danke für die schnelle Antwort, ich wusste nicht, dass es separat kompiliert und generiert wurde. Ja, ich beziehe mich auf die ursprüngliche Blade.php-Datei. Was ist dann der beste Weg, um PHP-Variablen in den kompilierten Dateien zu debuggen?
– Don F
13. Februar 2015 um 13:55 Uhr
Ich denke, PhpStorm hat einige Probleme mit dem Debuggen tatsächlich kompilierter Blade-Dateien (aufgrund der Art und Weise, wie Dateien benannt wurden und wie IDE funktioniert: Solche Dateien haben keine Erweiterung und IDE kann sie nicht zuordnen
PHP files
Dateityp, um Breakpoints setzen zu können etc.). Bitte beziehen Sie sich auf dieses Ticket: youtrack.jetbrains.com/issue/WI-25835– LazyOne
13. Februar 2015 um 13:58 Uhr
Die Blade-Syntax kann vom Debugger nicht ausgewertet werden (weil der Interpreter in Laravel implementiert ist). Während PHPStorm bis zu einem gewissen Grad Unterstützung für Blade-Templating bietet, kann es keine Breakpoints innerhalb von a platzieren
blade.php
Datei, es sei denn, der Code ist darin enthalten<?php ... ?>
.– Bogdan
13. Februar 2015 um 13:58 Uhr
Schau dir besser diesen an: youtrack.jetbrains.com/issue/WI-26476
– Kootli
13. Februar 2015 um 17:39 Uhr