Sven/PHP

From Organic Design wiki
Revision as of 23:26, 13 April 2008 by Nad (talk | contribs) (Logging information to file)

PHP errors

To see PHP errors, add this to the very top of LocalSettings.php:

<php>

error_reporting(E_ALL); ini_set("display_errors", 1); </php>


Debugging PHP

The idea is to debug sections of computer code which are under executional focus, this is considerably easier in an OOP paradigm than a procedural one which uses encapsulation. The class provies certain methods and properties to the code that uses the objects, so outside code does not directly access the data structures of those objects, they do so through the interface.


Info.svg In MediaWiki there is a profiler that can be set, see MW:How to debug.


Debuggers generally use a W:Stack trace. This can be approximated by using print and die statements in sections of code. The combination of print_r and func_get_args allows you to return an array of args that a function was called with;


<php>

print_r(func_get_args()); </php>

Casting an object of an array builds an array of the properties, mapping property names to values. e.g.

{{{1}}}

outputs;


{{{1}}}

Logging information to file

From Sven/Notes, Extension:Fasta.php;

{{{1}}}

Introspection

Info.svg


{{{1}}}


MediaWiki profiler

The article how to debug MediaWiki provides information on setting up the profiler by adding the globals to your LocalSettings.php file;

{{{1}}}

However if you include in an extension;

<php>

include("$IP/includes/GlobalFunctions.php"); wfDebug("This is just testing the debug tracing stuff\n"); </php>

there seems to be no output in the generated log file.

See also

Debugging
PHP Documentation


MediaWiki Documentation
Extensions
Online Resources