Example #1
0
<?php

// Require Loader
if (file_exists("app/libraries/Autoload.php")) {
    require_once "app/libraries/Autoload.php";
}
// Initialize all requires classes
Autoload::init();
// To avoid triggering a PHP notice, we can't use array elements that do not exists
if (!isset($_GET['url'])) {
    $_GET['url'] = '/';
}
$router = new Router($_GET['url']);
$router->setDefaultController('HomeController');
$router->setDefaultAction('index');
$router->parse();
$controller = $router->getController();
$action = $router->getAction();
$arguments = $router->getArguments();
$controllerClass = Controller::factory($controller);
$actionName = $action;
// This is the key part, we call a method that has a name stored in $stored
$controllerClass->{$actionName}($arguments);
 /**
  * apply curry.ini settings
  * 
  * @return boolean
  */
 public function applyConfig()
 {
     Loader::load('Ini', 'core');
     Loader::load('Db', 'db');
     $ini = false;
     if ($this->_appEnv == null) {
         // Default section is "product"
         $ini = Ini::load('database.ini', 'product');
     } else {
         $ini = Ini::load('database.ini', $this->_appEnv);
     }
     if ($ini === false) {
         // For the compatibility of a old version.
         $ini = Ini::load('database.ini', 'connection');
     }
     if ($ini !== false) {
         Db::setConfig($ini);
     }
     $ini = Ini::load('curry.ini');
     if ($ini === false) {
         return false;
     }
     if (array_key_exists('dispatch', $ini)) {
         $values = $ini['dispatch'];
         $key = 'plugin_enabled';
         if (array_key_exists($key, $values)) {
             if (is_numeric($values[$key]) && $values[$key] == 1) {
                 $this->dispatcher->enablePlugin(true);
             }
         }
         $key = 'is_send_404';
         if (array_key_exists($key, $values)) {
             if (is_numeric($values[$key]) && $values[$key] != 1) {
                 $this->dispatcher->isSend404(false);
             }
         }
         $key = 'sub_controller_enabled';
         if (array_key_exists($key, $values)) {
             if (is_numeric($values[$key]) && $values[$key] == 1) {
                 $this->router->enableSubController(true);
             }
         }
         $key = 'is_rewrite';
         if (array_key_exists($key, $values)) {
             if (is_numeric($values[$key]) && $values[$key] != 1) {
                 $this->router->isRewrite(false);
             }
         }
         $key = 'default_controller';
         if (array_key_exists($key, $values)) {
             $this->router->setDefaultController($values[$key]);
         }
         $key = 'default_action';
         if (array_key_exists($key, $values)) {
             $this->router->setDefaultAction($values[$key]);
         }
         $key = 'controller_query_key';
         if (array_key_exists($key, $values)) {
             $this->router->setControllerQueryKey($values[$key]);
         }
         $key = 'action_query_key';
         if (array_key_exists($key, $values)) {
             $this->router->setActionQueryKey($values[$key]);
         }
         $key = 'controller_suffix';
         if (array_key_exists($key, $values)) {
             NameManager::setControllerSuffix($values[$key]);
         }
         $key = 'action_suffix';
         if (array_key_exists($key, $values)) {
             NameManager::setActionSuffix($values[$key]);
         }
     }
     if (array_key_exists('view', $ini)) {
         $values = $ini['view'];
         $key = 'class_name';
         if (array_key_exists($key, $values)) {
             $this->dispatcher->setViewClass($values[$key]);
         }
         $key = 'layout_enabled';
         if (array_key_exists($key, $values)) {
             if (is_numeric($values[$key]) && $values[$key] != 1) {
                 ViewAbstract::setDefaultLayoutEnabled(false);
             }
         }
         $key = 'template_extension';
         if (array_key_exists($key, $values)) {
             NameManager::setTemplateExtension($values[$key]);
         }
     }
     if (array_key_exists('request', $ini)) {
         $values = $ini['request'];
         $key = 'auto_trim';
         if (array_key_exists($key, $values)) {
             if (is_numeric($values[$key]) && $values[$key] == 1) {
                 Request::setAutoTrim(true);
             }
         }
     }
     if (array_key_exists('database', $ini)) {
         $values = $ini['database'];
         $key = 'is_singleton';
         if (array_key_exists($key, $values)) {
             if (is_numeric($values[$key]) && $values[$key] == 0) {
                 Db::setIsSingleton(false);
             }
         }
     }
     if (array_key_exists('logger', $ini)) {
         Loader::load('Logger', 'utility');
         $values = $ini['logger'];
         $key = 'system_log';
         if (array_key_exists($key, $values)) {
             Logger::setLogName($values[$key]);
         }
         $key = 'query_log';
         if (array_key_exists($key, $values)) {
             Logger::setLogName($values[$key], 'query');
             Db::enableLogging('query');
         }
         $key = 'output_level';
         if (array_key_exists($key, $values)) {
             $val = strtolower(trim($values[$key]));
             if (is_numeric($val) == false) {
                 $levels = array('debug' => LogLevel::DEBUG, 'info' => LogLevel::INFO, 'warn' => LogLevel::WARN, 'error' => LogLevel::ERROR, 'except' => LogLevel::EXCEPT);
                 if (array_key_exists($val, $levels)) {
                     $val = $levels[$val];
                 } else {
                     $val = LogLevel::NO_OUTPUT;
                 }
             }
             Logger::setOutputLevel($val, 'query');
         }
         $key = 'max_line';
         if (array_key_exists($key, $values)) {
             Logger::setMaxLine($values[$key]);
         }
         $key = 'max_generation';
         if (array_key_exists($key, $values)) {
             Logger::setGeneration($values[$key]);
         }
     }
     if (array_key_exists('loader', $ini)) {
         $values = $ini['loader'];
         $key = 'autoload_dirs';
         if (array_key_exists($key, $values)) {
             $dirs = explode(',', $values[$key]);
             Loader::addAutoloadDirectory($dirs);
         }
     }
     return true;
 }
Example #3
0
<?php

namespace Router;

require_once 'vendor/autoload.php';
$router = new Router();
$router->setDefaultModule('index');
$router->setDefaultController('index');
$router->setDefaultAction('index');
$router->add('/admin/controllers/user/show/:param', ['module' => 'Lib\\Controllers', 'controller' => 'user', 'action' => 'show', 'param1' => 1], ['method' => 'get']);
$router->add('/', ['controller' => 'index', 'action' => 'index'], ['method' => 'get | post']);
$router->add('/admin/:controller/:action', ['controller' => 1, 'action' => 2], ['method' => 'post']);
$router->add('/admin/controllers/user/show/:param/:param', ['module' => 'Controllers', 'controller' => 'user', 'action' => 'show', 'param1' => 1, 'param2' => 2], ['method' => 'get']);
$router->add('/admin/:module/users/show/:param', ['module' => 1, 'controller' => 'users', 'action' => 'show', 'param1' => 1], ['method' => 'get']);
$router->add('/admin/users/show/:name', ['controller' => 'users', 'action' => 'show', 'name1' => 1], ['method' => 'get']);
$router->add('/admin/cont/:action/:param/:param', ['controller' => 'cont', 'action' => 1, 'param1' => 2, 'param2' => 3], ['method' => "get | post"]);
$route = $router->resolve();
foreach ($route as $key => $value) {
    echo $key . ': ';
    if (is_string($value)) {
        echo $value;
    } elseif (is_array($value)) {
        foreach ($value as $key2 => $value2) {
            echo '<br><span style="margin-left: 50px"><b>' . $key2 . ': ' . $value2 . '</b></span><br>';
        }
    }
    echo '<br>';
}