Fork me on GitHub

Introduction

This manual documents aspects of the Hathoora PHP Framework.

Philosophy

This framework is built with following in mind:

  • Easy to support and organize code for multiple websites/applications (cms, api, sub-projects, sub-domains etc).
  • Simple and complex routing without dealing with routing files or compromising webservers rewrites.
  • Freedom developing business model logic because you know what you are doing with raw SQL - no ORM, thank you.
  • Support for complex database setup - multiple masters, multiple slaves or sharding.
  • Database driven translation system because you need to make changes to content without deployments.
  • Powerful grid system for rapid common "admin" panel development tasks.
  • Ability to execute controller code from command line.
  • YAML based configurations so you can share between php and other scripts (in perl, python, bash etc).

Where does "Hathoora" come from?

Hathoora (ہتھوڑا) is an Urdu word meanning hammer. Hammer is a tool meant to deliver an impact, to fit parts, to forge and build things. That is the idea.

Page Took:         5.19 msec
Page Memory:   508.37k
docs / viewController / view (200)
Request UUID: 5d2ffb2ea15144.13204559
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
34.229.24.100
HTTP_X_REAL_IP
34.229.24.100
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
Fri, 19 Apr 2019 23:37:43 BST
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
44868
REDIRECT_URL
/docs/v1/introduction
GATEWAY_INTERFACE
CGI/1.1
SERVER_PROTOCOL
HTTP/1.0
REQUEST_METHOD
GET
QUERY_STRING
REQUEST_URI
/docs/v1/introduction
SCRIPT_NAME
/index.php
PHP_SELF
/index.php
REQUEST_TIME_FLOAT
1563425582.66
REQUEST_TIME
1563425582
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.417 DEBUG 323.98 Listener "kernel.terminate[webprofiler]" has been added because of hathoora.logger.webprofiler.enabled
3 2.575 DEBUG 327.38 Event kernel.ready has been registered.
4 2.766 DEBUG 335.75 Calling App dispatcher (Array ( [class] => customDispatcher [method] => dispatch ) )...
5 2.957 DEBUG 350.52 Event kernel.route has been registered.
6 3.228 DEBUG 379.88 Event kernel.controller has been registered.
7 3.279 DEBUG 380.83 Calling controller (\docs\controller\viewController::view) with following params
Array
(
    [0] => v1
    [1] => introduction
)
8 3.922 INFO 468.18 Template (docs/v1/introduction.tpl.php) loaded
9 4.102 INFO 469.45 Template (/var/websites/hathoora.org/app/hathoora/docs//resources/templates/components/htmlMeta.tpl.php) loaded
10 4.200 INFO 470.70 Template (/var/websites/hathoora.org/app/hathoora/docs//resources/templates/components/flashMessages.tpl.php) loaded
11 5.033 INFO 436.80 Template (docs.tpl.php) fetched.
12 5.060 DEBUG 436.40 Event kernel.response has been registered.
13 5.078 DEBUG 437.59 Event kernel.terminate has been registered.
14 5.116 DEBUG 440.80 Event kernel.terminate->webprofiler has been notified.
Profiling
template
# Time (msec) Name Cached Took (msec)
1 3.385 docs.tpl.php 0 1.603