Fork me on GitHub

Debugging

Configuration

To enable debugging use the following configuration

        
            # File config.yml

            hathoora:
                logger:
                    profiling:
                        enabled: 1
                    logging:
                        enabled: 1
                        level: DEBUG
                    webprofiler:
                        enabled: 1
                        content_types: ['text/html']
                        skip_on_ajax: 1
                        skip_on_post_params: []
                        skip_on_get_params: []
                        show_redirects: false
                        system: fale
                        template: PATH TO TEMPLATE
        
    

There are three main components to logging:

  • proiling: to profile things like database, cache, template and grid.
  • logging: the usual logging with the ability to specify a following log level:
    • DEBUG: most verbose, lots of information
    • INFO: useful information, lesser than DEBUG
    • WARNING: show only warnings
    • ERROR: to show only errors
    • FATAL: internal usage when PHP dies and hathoora's error handling is enabled.
  • webprofiler: to show web profiler at the bottom of the page. Further options available:
    • content_types: array of content type of controller's response for which web profiler will be displayed.
    • skip_on_ajax: don't show webprofiler when it is an AJAX request.
    • skip_on_post_params: array of POST params for which webprofiler will not be shown.
    • skip_on_get_params: array of GET params for which webprofiler will not be shown.
    • show_redirects: when enabled would intercept redirects.
    • system: when enabled would display system information about load, processes etc to get some sense of webserver's performance.
    • template: don't like the default webprofiler template? Use your own by defining a file path and use this as an example.

If you are following documentation about setting up multiple environmnets, then you can enable debugging options for your development server easily.

:

Webprofiler

This is what webprofile looks like, when enabled:




Logging

Following shows an example of how to log.

        
            hathoora\logger\logger::log($level, $message);
        
    

printr() and vardump()

There are two handy functions that are available for print_r() and var_dump() respectively. They simply display output nicely, with the possibility of exiting the code.

        
            printr($arr);
            printr($arr, 'Die message');

            vardump($var);
            vardump($var, 'Die message');
        
    

Also checkout the following debugging tools:

Page Took:         6.40 msec
Page Memory:   513.39k
docs / viewController / view (200)
Request UUID: 59963bf6984115.18346220
Get
Post
Cookies
Files
Session
Server
Response
No data.
No data.
No data.
No data.
No data.
REDIRECT_HATHOORA_ENV
prod
REDIRECT_STATUS
200
HATHOORA_ENV
prod
HTTP_HOST
hathoora.org
HTTP_X_FORWARDED_FOR
54.224.184.251
HTTP_X_REAL_IP
54.224.184.251
HTTP_CONNECTION
close
HTTP_ACCEPT_ENCODING
x-gzip, gzip, deflate
HTTP_USER_AGENT
CCBot/2.0 (http://commoncrawl.org/faq/)
HTTP_ACCEPT
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
PATH
/sbin:/usr/sbin:/bin:/usr/bin
SERVER_SIGNATURE
Apache/2.2.15 (CentOS) Server at hathoora.org Port 80
SERVER_SOFTWARE
Apache/2.2.15 (CentOS)
SERVER_NAME
hathoora.org
SERVER_ADDR
192.168.1.11
SERVER_PORT
80
REMOTE_ADDR
207.126.164.119
DOCUMENT_ROOT
/var/websites/hathoora.org/docroot
SERVER_ADMIN
webmaster@hathoora.org
SCRIPT_FILENAME
/var/websites/hathoora.org/docroot/index.php
REMOTE_PORT
45774
REDIRECT_URL
/docs/v1/debugging
GATEWAY_INTERFACE
CGI/1.1
SERVER_PROTOCOL
HTTP/1.0
REQUEST_METHOD
GET
QUERY_STRING
REQUEST_URI
/docs/v1/debugging
SCRIPT_NAME
/index.php
PHP_SELF
/index.php
REQUEST_TIME_FLOAT
1503017974.622
REQUEST_TIME
1503017974
Status: 200
Headers:
Content-Type
text/html; charset=UTF-8
Configutation
Key Value
app.admin
Array
(
    [pattern] => /admin(|/)
    [directory] => hathoora
    [namespace] => hathoora\admin
)
app.docs
Array
(
    [pattern] => /docs(|/)
    [directory] => hathoora
    [dispatcher] => Array
        (
            [class] => customDispatcher
            [method] => dispatch
        )

)
app.site
Array
(
    [default] => 1
)
hathoora.logger
Array
(
    [profiling] => Array
        (
            [enabled] => 1
        )

    [logging] => Array
        (
            [enabled] => 1
            [level] => DEBUG
        )

    [webprofiler] => Array
        (
            [enabled] => 1
            [system] => 
            [show_redirects] => 
        )

)
hathoora.template
Array
(
    [engine] => Array
        (
            [name] => Stuob
        )

)
hathoora.database
Array
(
    [default] => mysql://dbuser:dbpassword@dbhost:3306/dbname
)
services.container
Array
(
    [class] => \hathoora\container
    [method] => getContainer
)
Logging (14)
hathoora.logger.logging.enabled: 1
# Time (msec) Level Memory (KB) Message
1 2.410 DEBUG 309.31 Configuration loaded:
Array
(
    [0] => app_prod.yml
    [1] => config_prod.yml
)
2 2.737 DEBUG 322.92 Listener "kernel.terminate[webprofiler]" has been added because of hathoora.logger.webprofiler.enabled
3 2.913 DEBUG 326.31 Event kernel.ready has been registered.
4 3.131 DEBUG 334.68 Calling App dispatcher (Array ( [class] => customDispatcher [method] => dispatch ) )...
5 3.296 DEBUG 348.99 Event kernel.route has been registered.
6 3.692 DEBUG 378.34 Event kernel.controller has been registered.
7 3.754 DEBUG 379.28 Calling controller (\docs\controller\viewController::view) with following params
Array
(
    [0] => v1
    [1] => debugging
)
8 4.420 INFO 466.64 Template (docs/v1/debugging.tpl.php) loaded
9 4.659 INFO 474.42 Template (/var/websites/hathoora.org/app/hathoora/docs//resources/templates/components/htmlMeta.tpl.php) loaded
10 4.797 INFO 475.67 Template (/var/websites/hathoora.org/app/hathoora/docs//resources/templates/components/flashMessages.tpl.php) loaded
11 5.996 INFO 437.44 Template (docs.tpl.php) fetched.
12 6.057 DEBUG 437.03 Event kernel.response has been registered.
13 6.098 DEBUG 438.22 Event kernel.terminate has been registered.
14 6.209 DEBUG 441.44 Event kernel.terminate->webprofiler has been notified.
Profiling
template
# Time (msec) Name Cached Took (msec)
1 3.895 docs.tpl.php 0 1.979