fixate/pw-mvc-boilerplate

View on GitHub
core/Application.php

Summary

Maintainability
A
1 hr
Test Coverage
<?php

class Application
{
    public $config = null;
    public $fields = null;
    public $input = null;
    public $page = null;
    public $pages = null;
    public $permissions = null;
    public $roles = null;
    public $sanitizer = null;
    public $session = null;
    public $templates = null;
    public $user = null;
    public $users = null;

    public static function instance()
    {
        static $instance = null;
        if ($instance == null) {
            $instance = new static();
        }

        return $instance;
    }

    public static function init($config, $fields, $input, $page, $pages, $permissions, $roles, $sanitizer, $session, $templates, $user, $users)
    {
        $instance = self::instance();

        $instance->config = $config;
        $instance->fields = $fields;
        $instance->input = $input;
        $instance->page = $page;
        $instance->pages = $pages;
        $instance->permissions = $permissions;
        $instance->roles = $roles;
        $instance->session = $session;
        $instance->sanitizer = $sanitizer;
        $instance->templates = $templates;
        $instance->user = $user;
        $instance->users = $users;
    }

    public static function run()
    {
        $controller = Controller::dynamic_load(self::instance());
        if (!$controller) {
            self::set_http_status(404);

            return false;
        }

        $controller->before();

        if ($resp = $controller->call()) {
            echo $resp->body();
        }

        $controller->after($resp);

        return true;
    }

    private function __clone()
    {
        trigger_error('Clone disabled for singleton class.', E_ERROR);
    }
}