Example #1
0
<?php

namespace bloc;

date_default_timezone_set('America/Chicago');
#1. Frow where index.php is located, load the application file. This is the only mandatory part I think.
require '../bloc/application.php';
#2. Create an instance of the application
$app = Application::instance(['mode' => 'dev']);
# main page deal
$app->prepare('http-request', function ($app, $params) {
    $request = new Request($params);
    $response = new Response($request);
    $app->setExchanges($request, $response);
    // Provide a namespace (also a directory) to load objects that can respond to controller->action
    $router = new Router('controllers', $request);
    // default controller and action as arguments, in case nothin doin in the request
    $response->setBody($router->delegate('graph', 'index'));
    echo $response;
});
#4. Run the app. Nothing happens w/o this. Can call different stuff from the queue.
$app->execute('http-request', $_REQUEST);
Example #2
0
<?php

date_default_timezone_set('Asia/Novosibirsk');
require_once 'config/Templater.php';
require_once 'config/Config.php';
require_once 'Router.php';
$projectDir = __DIR__;
define('PROJECTDIR', $projectDir);
define('DIRSEP', DIRECTORY_SEPARATOR);
function autoloader($class)
{
    $class = trim($class, '/\\');
    $parts = explode('\\', $class);
    require_once __DIR__ . '/' . $parts[0] . '/' . $parts[1] . '.php';
}
spl_autoload_register('autoloader');
$smarty = \config\Templater::getInstance()->smarty();
// Вывести верхний колонтитул
$smarty->display('header.tpl');
$router = new Router();
$router->delegate();
// Вывести нижний колонтитул
$smarty->display('footer.tpl');
Example #3
0
#3. Get a Session ready
$app->prepare('session-start', function ($app) {
    $app->session('COLUM');
});
$app->prepare('clean-up', function ($app) {
    session_write_close();
});
# main page deal
$app->prepare('http-request', function ($app, $params) {
    $request = new Request($params);
    $response = new Response($request);
    $app->setExchanges($request, $response);
    // Provide a namespace (also a directory) to load objects that can respond to controller->action
    $router = new Router('controllers', $request);
    try {
        $output = $router->delegate('lecture', 'index');
    } catch (\Exception $e) {
        \bloc\application::instance()->log($e->getTrace());
        $view = new View(\controllers\records::layout);
        $view->content = 'views/layouts/error.html';
        $output = $view->render(['message' => $e->getMessage()]);
    }
    // default controller and action as arguments, in case nothin doin in the request
    $response->setBody($output);
    if (getenv('MODE') === 'local' && count($app->log()) > 0) {
        $app->execute('debug', $response);
    }
    echo $response;
});
$app->prepare('debug', function ($app, $response) {
    $app::instance()->log('Peak Memory: ' . round(memory_get_peak_usage() / pow(1024, 2), 4) . "Mb");