Fork me on GitHub

Container

hathoora\container in Hathoora PHP Framework is an object created to hold other objects that are accessed, placed, and maintained with the class methods of the container. It is the gateway to accessing anything available in the framework.

Some components like contoller, model, database etc already extend container. If you need to access container outside these components then you:

  • Simply extend hathoora\container class.
  • Or use hathoora\container methods statically.

Using conatiner you can have access to the following components:

  • configurations
  • services
  • getKernel() for hathoora\kernel
  • getObserver() for hathoora\observer
  • getRouteRequest() for hathoora\route\request
  • getRouteDispatcher() for hathoora\route\dispatcher
  • getController() for hathoora\controller\base
  • getResponse() for hathoora\http\response
  • getRequest() for hathoora\http\request

Configuration

Below are some example of getting & setting configurations.

        
            // get an array of all configurations
            \hathoora\container::getAllConfig();

            // check if has config
            \hathoora\container::hasConfig('hathoora');

            // get key configurations - returns array in this case
            \hathoora\container::getConfig('hathoora');

            // or get nested configurations - returns single value in this case
            \hathoora\conatiner::getConfig('hathoora.logger.profiling.enabled');

            // where $value can be an int, string, object, array - anything.
            \hathoora\container::setConfig($key, $value)
        
    
Page Took:         3.77 msec
Page Memory:   508.78k
docs / viewController / view (200)
Request UUID: 5d7fbd7790aa50.82289350
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
www.hathoora.org
HTTP_X_FORWARDED_FOR
3.229.122.166
HTTP_X_REAL_IP
3.229.122.166
HTTP_CONNECTION
close
HTTP_USER_AGENT
CCBot/2.0 (https://commoncrawl.org/faq/)
HTTP_ACCEPT
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_LANGUAGE
en-US,en;q=0.5
HTTP_IF_MODIFIED_SINCE
Tue, 18 Jun 2019 08:09:35 PDT
HTTP_ACCEPT_ENCODING
gzip
PATH
/sbin:/usr/sbin:/bin:/usr/bin
SERVER_SIGNATURE
Apache/2.2.15 (CentOS) Server at www.hathoora.org Port 80
SERVER_SOFTWARE
Apache/2.2.15 (CentOS)
SERVER_NAME
www.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
41026
REDIRECT_URL
/docs/v1/container
GATEWAY_INTERFACE
CGI/1.1
SERVER_PROTOCOL
HTTP/1.0
REQUEST_METHOD
GET
QUERY_STRING
REQUEST_URI
/docs/v1/container
SCRIPT_NAME
/index.php
PHP_SELF
/index.php
REQUEST_TIME_FLOAT
1568652663.591
REQUEST_TIME
1568652663
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.184 DEBUG 310.38 Configuration loaded:
Array
(
    [0] => app_prod.yml
    [1] => config_prod.yml
)
2 2.308 DEBUG 323.98 Listener "kernel.terminate[webprofiler]" has been added because of hathoora.logger.webprofiler.enabled
3 2.387 DEBUG 327.38 Event kernel.ready has been registered.
4 2.478 DEBUG 335.74 Calling App dispatcher (Array ( [class] => customDispatcher [method] => dispatch ) )...
5 2.552 DEBUG 350.52 Event kernel.route has been registered.
6 2.667 DEBUG 379.88 Event kernel.controller has been registered.
7 2.689 DEBUG 380.82 Calling controller (\docs\controller\viewController::view) with following params
Array
(
    [0] => v1
    [1] => container
)
8 2.970 INFO 468.17 Template (docs/v1/container.tpl.php) loaded
9 3.064 INFO 469.81 Template (/var/websites/hathoora.org/app/hathoora/docs//resources/templates/components/htmlMeta.tpl.php) loaded
10 3.119 INFO 471.06 Template (/var/websites/hathoora.org/app/hathoora/docs//resources/templates/components/flashMessages.tpl.php) loaded
11 3.589 INFO 436.92 Template (docs.tpl.php) fetched.
12 3.617 DEBUG 436.52 Event kernel.response has been registered.
13 3.635 DEBUG 437.70 Event kernel.terminate has been registered.
14 3.683 DEBUG 440.92 Event kernel.terminate->webprofiler has been notified.
Profiling
template
# Time (msec) Name Cached Took (msec)
1 2.735 docs.tpl.php 0 0.803