Files
luos/workflow/public_html/app.php

114 lines
3.1 KiB
PHP
Raw Normal View History

2014-03-07 13:20:06 -04:00
<?php
2017-08-16 10:07:09 -04:00
use Illuminate\Foundation\Http\Kernel;
2017-08-16 10:07:09 -04:00
use Maveriks\WebApplication;
use Maveriks\Http\Response;
use Maveriks\Pattern\Mvc\PhtmlView;
2018-08-29 09:44:42 -04:00
use ProcessMaker\Core\AppEvent;
2017-08-16 10:07:09 -04:00
use ProcessMaker\Exception\RBACException;
// Because laravel has a __ helper function, it's important we include the class.g file to ensure our __ is used.
require_once __DIR__ . '/../../gulliver/system/class.g.php';
require_once __DIR__ . '/../../bootstrap/autoload.php';
require_once __DIR__ . '/../../bootstrap/app.php';
//Initialize application event
2018-08-29 09:44:42 -04:00
AppEvent::getAppEvent();
// Register shutdown function to close Propel if it exists
register_shutdown_function(
2019-11-27 14:22:09 -04:00
function () {
if (class_exists('Propel')) {
Propel::close();
}
2019-11-27 14:22:09 -04:00
}
);
// Set session cookie settings
ini_set("session.cookie_httponly", 1);
// Handle unencoded URL
2014-06-24 12:12:59 -04:00
if (isset($_SERVER['UNENCODED_URL'])) {
$_SERVER['REQUEST_URI'] = $_SERVER['UNENCODED_URL'];
}
2014-03-10 16:02:09 -04:00
try {
$rootDir = realpath(__DIR__ . "/../../") . DIRECTORY_SEPARATOR;
2017-08-16 10:07:09 -04:00
$app = new WebApplication();
2014-03-10 16:02:09 -04:00
$app->setRootDir($rootDir);
$app->setRequestUri($_SERVER['REQUEST_URI']);
// Route the application
2014-03-11 18:05:50 -04:00
$stat = $app->route();
2014-03-10 16:02:09 -04:00
2017-08-16 10:07:09 -04:00
switch ($stat) {
case WebApplication::RUNNING_WORKFLOW:
2014-03-10 16:02:09 -04:00
include "sysGeneric.php";
break;
2017-08-16 10:07:09 -04:00
case WebApplication::RUNNING_API:
$app->run(WebApplication::SERVICE_API);
2014-03-10 16:02:09 -04:00
break;
2017-08-16 10:07:09 -04:00
case WebApplication::RUNNING_OAUTH2:
$app->run(WebApplication::SERVICE_OAUTH2);
break;
2017-08-16 10:07:09 -04:00
case WebApplication::RUNNING_INDEX:
$response = new Response(file_get_contents("index.html"), 302);
$response->send();
break;
2017-08-16 10:07:09 -04:00
case WebApplication::RUNNING_DEFAULT:
$response = new Response("", 302);
//TODO compose this def url with configuration data from env.ini
$response->setHeader("location", "/sys/en/neoclassic/login/login");
$response->send();
break;
2014-03-10 16:02:09 -04:00
}
2017-08-16 10:07:09 -04:00
} catch (RBACException $e) {
handleRBACException($e);
2014-03-10 16:02:09 -04:00
} catch (Exception $e) {
//handleGeneralException($e, $rootDir);
2017-08-16 10:07:09 -04:00
$view = new PhtmlView($rootDir . "framework/src/templates/Exception.phtml");
$view->set("message", $e->getMessage());
$view->set("exception", $e);
2017-08-16 10:07:09 -04:00
$response = new Response($view->getOutput(), 503);
$response->send();
}
/**
* Handle the application state based on routing status.
*
* @param int $stat
* @param WebApplication $app
*/
function handleApplicationState(int $stat, WebApplication $app): void {
}
/**
* Handle RBAC exceptions by redirecting to the specified path.
*
* @param RBACException $e
*/
function handleRBACException(RBACException $e): void {
G::header('location: ' . $e->getPath());
2014-03-10 16:02:09 -04:00
}
/**
* Handle general exceptions by rendering an error view.
*
* @param Exception $e
* @param string $rootDir
*/
function handleGeneralException(Exception $e, string $rootDir): void {
$view = new PhtmlView($rootDir . "framework/src/templates/Exception.phtml");
$view->set("message", $e->getMessage());
$view->set("exception", $e);
$response = new Response($view->getOutput(), 503);
$response->send();
}