Вход Регистрация
Файл: upload/system/engine/action.php
Строк: 24
<?php
class Action {
    private 
$file;
    private 
$class;
    private 
$method;
    private 
$args = array();

    public function 
__construct($route, $args = array()) {
        
$parts = explode('/', str_replace('../', '', (string)$route));

        
// Break apart the route
        
while ($parts) {
            
$file = DIR_APPLICATION . 'controller/' . implode('/', $parts) . '.php';

            if (
is_file($file)) {
                
$this->file = $file;

                
$this->class = 'Controller' . preg_replace('/[^a-zA-Z0-9]/', '', implode('/', $parts));
                break;
            } else {
                
$this->method = array_pop($parts);
            }
        }

        if (!
$this->method) {
            
$this->method = 'index';
        }

        
$this->args = $args;
    }

    public function 
execute($registry) {
        
// Stop any magical methods being called
        
if (substr($this->method, 0, 2) == '__') {
            return 
false;
        }

        if (
is_file($this->file)) {
            include_once(
$this->file);

            
$class = $this->class;

            
$controller = new $class($registry);

            if (
is_callable(array($controller, $this->method))) {
                return 
call_user_func(array($controller, $this->method), $this->args);
            } else {
                return 
false;
            }
        } else {
            return 
false;
        }
    }
}
Онлайн: 1
Реклама