Sven/PHP

From Organic Design wiki
Revision as of 05:20, 23 July 2011 by Nad (talk | contribs) (uncat)

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.

Globals

<php>

$wgOut

       OutputPage object for HTTP response.

$wgUser

       User object for the user associated with the current
       request.

$wgTitle

       Title object created from the request URL.

$wgLang

       Language object selected by user preferences

$wgContLang

       Language object associated with the wiki being
       viewed.

$wgArticle

       Article object corresponding to $wgTitle.

$wgParser

       Parser object. Parser extensions register their
       hooks here.

$wgLoadBalancer

       A LoadBalancer object, manages database connections.

</php>

See also

Debugging
PHP Documentation


MediaWiki Documentation
Extensions
Online Resources