Website-Pflege
Schild: Sackgasse - keine Wendemöglichkeit - Möglicherweise ein unerwartetes Ende wie im Fall von Wordpress

PHP-Fehler “unexpected end of file”

Bei so manchem WordPress-Projekt ist man in der Situation, dass man eigene Templates entwirft. WordPress Templates sind die typischen Vertreter der alten PHP Schule, wonach PHP ja bereits eine eigene Template Engine ist und bilden somit eine Mischform aus HTML und PHP Anweisungen. So ist PHP quasi entstanden. Inzwischen wird PHP und HTML Code durch zusätzliche Template-Engines wie dem Oldie but Goldie Smarty oder Twig und Blade (Laravel) getrennt, was für größere Projekte gerade aus Gründen der Wiederverwertbarkeit, aber auch Übersichtlichkeit des Projekts sinnvoll ist. Nichtsdestotrotz verzichtet man bei WordPress auf Template Engines und überlässt die Trennung von Logik und Präsentation dem Entwickler. Es entstehen dann z.B. Codeausdrücke der Form:

“Leider” funktioniert aber meistens auch die Kurzversion, indem man <?php durch <? ersetzt, also:

Viele Apache Webserver werden an dieser Stelle den Code brav ausführen. Das liegt daran, dass in der PHP.ini die Konfigurationsvariable “short_open_tag” den Wert “On” besitzt, was die Ausführung von dieser Syntax erlaubt. Problematisch wird es allerdings wenn die PHP Version den Wert “Off” hat. An dieser Stelle wird es einen Fatalen Fehler geben, z.B.:

“PHP Parse error: syntax error, unexpected end of file in …”

Das Problem dabei ist, dass viele Entwicklungs-Umgebungen, wie z.B. “MAMP”, die kurze Schreibweise per Default erlauben. Auf dem Produktionsserver des Hosters kann das dann zu bösen Überraschungen führen – und wer öfter mit WordPress arbeitet, weiß, dass das Debugging nicht unbedingt zu den Stärken dieses CMS gehört.

Entwickler, die z.B. PHPStorm benutzen, können bei Inspections > PHP > Code Style die Option “Short Open Tag Usage” anhaken und bekommen dann während der Entwicklung schon eine entsprechende Warnung:

Happy WordPress Coding!

Noch ein Hinweis: Höchstwahrscheinlich sehen Sie die Fehlermeldung nicht auf dem Bildschirm, sondern stattdessen wird einfach ein weißer Bildschirm angezeigt (white Screen of Death). In den Fehlerlogs Ihres Hosters wird aber irgendwo eine derartige Meldung zu finden sein. Achten Sie auf die PHP Dateien, die Sie modifiziert oder neu erstellt haben.

 

Siehe auch

Weitere Techdoks und Snippets

Shortcode E-Mail Obfuscator

Folgendes Shortcode-Snippet ist nützlich, um E-Mails zu verschleiern, um sie vor SPAM zu schützen. Dazu der Hinweis, dass diese Methode nur funktioniert, wenn Javascript aktiviert ist. Darüber hinaus gibt es keinen 100%igen Schutz vor Bots,…

Elementor Beiträge Widget mit ACF Beziehungsfeld füllen

Mit dem Beiträge Widget in Elementor kann man schon recht bequem in einer Schleife andere Beiträge, Seiten, Produkte oder Custom Post Types (CPT) ( = Benutzerdefinierte Inhaltstypen) auf einer Seite darstellen. Knifflig wird es dann…

PHPStorm: Local Changelist in Git Tool verschwunden

Problem: Local Change List unter PHPStorm fehlt im Git Tool Lösung: Ich hatte ab und zu das Phänomen, dass die Local Changelist (die Dateien in meiner Versionskontrolle) im Git Tool als Tabreiter nicht sichtbar waren.…

Variable in Blade Komponente nicht verfügbar

Problem: Die Parameterübergabe eines Blade-Attributes funktioniert nicht, die Variable in der Komponente ist leer. Es gibt keine Fehlermeldung, sondern die Variable scheint nicht übergeben worden zu sein. Lösung: Eventuell liegt der Fehler in der Benutzung…

Tailwind Autocomplete mit PHPStorm (WebStorm) funktioniert nicht

Problem: Falls Sie z.B. eine Laravel App erstellen und sich darüber wundern, warum PHPStorm oder WebStorm die Autovervollständigung für Ihre CSS Klassen in Blade Templates oder HTML-Dateien nicht durchführt, liegt es höchstwahrscheinlich daran, dass die…

WP CLI Error: Error establishing a database connection.

Auftauchen: Befehle über WP CLI absetzen, Wordpress im Browser funktioniert jedoch. Dieser Fehler tritt häufig auf, wenn der WP CL Interpreter die Datenbankverbindung in wp-config.php nicht richtig interpretieren kann. Lösung: In 99% aller Fälle den…

Mit Alfred sehr schnell Px in REM / EM umrechnen

Auf dem Mac gibt es einen wunderbaren Alfred-Workflow, der Px in Rem umrechnet: Download Direktlink: https://raw.githubusercontent.com/vitorgalvao/requested-alfred-workflows/master/Workflows/Px%20Rem%20Em.alfredworkflow Einfach installieren, dann CMD-Space: Alfred Bar "pxrem" tippen und die Zahl in Pixel angeben. Die Umrechnung in REM wird…

Einrichten von XDebug mit PHPStorm und Valet Development Umgebung

Vorbereitung: Homebrew sollte installiert sein Valet sollte installiert sein und laufen: https://laravel.com/docs/7.x/valet Browser Extension für PHPSTORM sollte installiert sein: https://www.jetbrains.com/help/phpstorm/browser-debugging-extensions.html gerry@webgarten ~ % brew install pecl gerry@webgarten ~ % pecl install xdebug Bei Fehlermeldung: Warning:…