function smarty_function_reverse($params, Smarty_Internal_Template $template)
{
    if (empty($params['path'])) {
        trigger_error("assign: missing 'path' parameter");
        return;
    }
    $routing = new Routing();
    $route = $routing->reverse($params['path']);
    if (isset($params['params'])) {
        foreach ($params['params'] as $key => $value) {
            $pattern = sprintf('#\\(\\?P<%s>.*?\\)#', $key);
            $route = preg_replace($pattern, $value, $route, 1);
        }
    }
    return '?route=' . $route;
}
Example #2
0
<?php

require_once '../vendor/autoload.php';
// setup Propel
require_once '../config/generated-conf/config.php';
use routing\Routing;
$mode = 'dev';
if ($mode == 'prod') {
    ini_set("display_errors", 0);
    error_reporting(0);
} else {
    ini_set("display_errors", 1);
    error_reporting(E_ALL & ~E_NOTICE);
}
/*$request = Request::createFromGlobals();

if(!$request->hasSession())
{
    $session = new Session();
    $request->setSession($session);
    $request->getSession()->start();
    $request->getSession()->set('mode', $mode);
}*/
$routing = new Routing($mode);
$routing->configure();
$response = $routing->match();
//$response->send();
 /**
  * Starts the framework
  *
  * @param string|null $settings Path to settings file
  * @return int If all is well then it returns zero
  * @throws \Exception
  */
 public static function run(string $settings = null) : int
 {
     $settingsFile = $settings ? $settings : realpath(dirname(__FILE__) . '/../../../' . 'settings.yml');
     # load settings
     if (!Settings::load($settingsFile)) {
         return false;
     }
     if (Settings::getProduction()) {
         ini_set('display_errors', 'Off');
         ini_set('error_log', '/tmp/php-error.log');
         ini_set('log_errors', 1);
     }
     # set timezone
     Timezone::setTimezone(Settings::getTimezone());
     # set locale language
     I18n::setLocale(I18n::getLanguage());
     # generate routes
     if (Settings::getAutoroute()) {
         Routing::generateRoutes();
     }
     # load routes
     $routesFile = Settings::getRoutesFile();
     if (file_exists($routesFile)) {
         self::$routes = YAML::load($routesFile);
     } else {
         printf('[Error] Routes file %s does not exists', $routesFile);
         return false;
     }
     $dbSettings = Settings::getDBSettings();
     $db = new DB($dbSettings['dbm'], $dbSettings['host'], $dbSettings['name'], $dbSettings['user'], $dbSettings['password']);
     DB::setGlobal($db);
     # load actions
     Actions::autoloader(Settings::getActionsPath());
     Session::start();
     $request = isset($_GET[Settings::SETTINGS_ROUTE_PARAM_VALUE]) ? $_GET[Settings::SETTINGS_ROUTE_PARAM_VALUE] : '';
     if (Routing::parseRoute($request, self::$routes) == -1) {
         Response::response(Response::HTTP_FORBIDDEN);
     }
     return 0;
 }