Fork me on GitHub

Organization

You can install Hathoora PHP Framework anywhere you want. Directory to which you install is called HATHOORA_ROOTPATH.

Example layout

Here is the default layout of Hathoora PHP Framework installation.

        
            # Directory: HATHOORA_ROOTPATH/

            # App root
            app/
                
                # Folders for organization of code
                sample      
                    admin/                      <-- name of application
                        config/
                            config_dev.yml
                            config_prod.yml
                        controller/
                        resources/
                            assets/
                                css/
                                js/
                                images/
                            templates/
                        model/ 
                        
                    docs/                 <-- name of second supported application
                        ...
                
                # An app without organizational folder
                site/                           <-- name of third supported application
                    config/
                    controller/
                    resources/
                    

            # this is where your application definication would go
            boot/
                config/
                    app_dev.yml
                    app_prod.yml

            # Public facing
            docroot/
                _assets/
                    # place your static files here
                    
                # the frontend controller
                index.php

            # third party code goes here (via composer)
            vendor/
        
    

The app/ Directory

The app directory conatins source of your applications. You can have single application of multiple applications. Each application itself contains the following:

  • Config: stores application specific configuations which are discussed in more details here.
  • Controller: stores application specific controllers to intercept requests.
  • Resources: stores application specific templates and assets.
  • Model: stores application specific models or logic. This can be named to anything.

The boot/ Directory

The boot directory contains a file called app_HATHOORA_ENV.yml. This is where you define supported application(s).

Note that HATHOORA_ENV represent the environment your application is running in, this could be dev, prod or anything.

The docroot/ Directory

This is public facing directoy which should be configured in your webserver.

The vendor/ Directory

This is where Composer packages are installed. Composer is a dependency management library for PHP. You can find out more about it here.

Page Took:         5.83 msec
Page Memory:   512.38k
docs / viewController / view (200)
Request UUID: 5d08feca9604b6.15477574
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.85.10.62
HTTP_X_REAL_IP
3.85.10.62
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 22:37:47 GMT
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
50188
REDIRECT_URL
/docs/v1/organization
GATEWAY_INTERFACE
CGI/1.1
SERVER_PROTOCOL
HTTP/1.0
REQUEST_METHOD
GET
QUERY_STRING
REQUEST_URI
/docs/v1/organization
SCRIPT_NAME
/index.php
PHP_SELF
/index.php
REQUEST_TIME_FLOAT
1560870602.613
REQUEST_TIME
1560870602
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.275 DEBUG 310.38 Configuration loaded:
Array
(
    [0] => app_prod.yml
    [1] => config_prod.yml
)
2 2.544 DEBUG 323.98 Listener "kernel.terminate[webprofiler]" has been added because of hathoora.logger.webprofiler.enabled
3 2.697 DEBUG 327.38 Event kernel.ready has been registered.
4 2.896 DEBUG 335.75 Calling App dispatcher (Array ( [class] => customDispatcher [method] => dispatch ) )...
5 3.067 DEBUG 350.52 Event kernel.route has been registered.
6 3.312 DEBUG 379.88 Event kernel.controller has been registered.
7 3.362 DEBUG 380.83 Calling controller (\docs\controller\viewController::view) with following params
Array
(
    [0] => v1
    [1] => organization
)
8 3.963 INFO 468.18 Template (docs/v1/organization.tpl.php) loaded
9 4.153 INFO 473.41 Template (/var/websites/hathoora.org/app/hathoora/docs//resources/templates/components/htmlMeta.tpl.php) loaded
10 4.265 INFO 474.66 Template (/var/websites/hathoora.org/app/hathoora/docs//resources/templates/components/flashMessages.tpl.php) loaded
11 5.443 INFO 438.13 Template (docs.tpl.php) fetched.
12 5.503 DEBUG 437.72 Event kernel.response has been registered.
13 5.545 DEBUG 438.91 Event kernel.terminate has been registered.
14 5.651 DEBUG 442.13 Event kernel.terminate->webprofiler has been notified.
Profiling
template
# Time (msec) Name Cached Took (msec)
1 3.460 docs.tpl.php 0 1.866