PHP: Fehlermeldung eines Amazon Alexa Skills loggen

PHP ist manchmal soooo ne Mutti! Besonders wenn man von 5.5 auf 7.1.x umsteigt. Immer und überall kommen Fehler. Das Problem: beim Amazon Alexa Skill gibt es kein visuelles Interface. Also hat man als Entwickler automatisch gelosed/verloren, wenn ein PHP-Error/-Warning auftritt. Das muss aber nicht sein! Ich zeig euch, wie ihr jede Fehlermeldung bekommt, ohne das euch Alexa jedes mal erzählt: „Bei der Kommunikation mit dem Skill ist ein Problem aufgetreten.“

 

Voraussetzungen

In meinem Beitrag gehe ich auf die Entwicklung eines Amazon Alexa Custom Skill als Web Service ein. Das heißt ich nutze kein Amazon Lambda, sondern einen einfachen PHP-fähigen Webspace, der aber über HTTPS erreichbar ist. Wenn ihr mehr über die Voraussetzungen wissen wollt, hier ist ein Beitrag zu dem Thema.

 

Das Skript

Sind alle Voraussetzungen erfüllt und hat vielleicht dieses Beispiel funktioniert, geht es jetzt weiter. Ihr legt entweder eine neue index.php Datei an oder verwendet die vorhandene Datei und schreibt das hier rein:

<?php
// Buffer speichern lassen!
ob_start();
 
// hier passiert was
trigger_error("Irgendwas");
 
// Alle echo-Outputs holen
$out = ob_get_clean();

// ggf auch response schon mal mit echo raus hauen

 
// Datei namens echo.log öffen 
$datei_handle = fopen ( "echo.log", "a+" );
// inhalt rein schreiben
fputs ( $datei_handle, $out);
// alles speichern und beenden      
fclose ( $datei_handle );
 
// ggf hier einen validen response ausgeben
?>

 

Das Ergebnis

Das Ergebnis ist eine leere weiße Seite und ihr habt eine Ausgabe im Log, die so aussehen sollte:

<br />
<b>Notice</b>:  Irgendwas in <b>index.php</b> on line <b>6</b><br />

cool oder?

 

Alternative

Ihr könnt natürlich auch alle PHP-Meldungen ausstellen mit dem Befehl:

error_reporting(0);

 

Habt ihr noch keinen Echo?! Dann hier kaufen:)

 

Quellen und weitere Links

 

Copyright © 2017 AxxG – Alexander Gräsel




Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.