Вход Регистрация
Файл: upload/system/engine/loader.php
Строк: 67
<?php
final class Loader {
    private 
$registry;

    public function 
__construct($registry) {
        
$this->registry $registry;
    }

    public function 
controller($route$data = array()) {
        
// $this->event->trigger('pre.controller.' . $route, $data);

        
$parts explode('/'str_replace('../''', (string)$route));

        
// Break apart the route
        
while ($parts) {
            
$file DIR_APPLICATION 'controller/' implode('/'$parts) . '.php';
            
$class 'Controller' preg_replace('/[^a-zA-Z0-9]/'''implode('/'$parts));

            if (
is_file($file)) {
                include_once(
$file);

                break;
            } else {
                
$method array_pop($parts);
            }
        }

        
$controller = new $class($this->registry);

        if (!isset(
$method)) {
            
$method 'index';
        }

        
// Stop any magical methods being called
        
if (substr($method02) == '__') {
            return 
false;
        }

        
$output '';

        if (
is_callable(array($controller$method))) {
            
$output call_user_func(array($controller$method), $data);
        }

        
// $this->event->trigger('post.controller.' . $route, $output);

        
return $output;
    }

    public function 
model($model$data = array()) {
        
// $this->event->trigger('pre.model.' . str_replace('/', '.', (string)$model), $data);

        
$model str_replace('../''', (string)$model);

        
$file DIR_APPLICATION 'model/' $model '.php';
        
$class 'Model' preg_replace('/[^a-zA-Z0-9]/'''$model);

        if (
file_exists($file)) {
            include_once(
$file);

            
$this->registry->set('model_' str_replace('/''_'$model), new $class($this->registry));
        } else {
            
trigger_error('Error: Could not load model ' $file '!');
            exit();
        }

        
// $this->event->trigger('post.model.' . str_replace('/', '.', (string)$model), $output);
    
}

    public function 
view($template$data = array()) {
        
// $this->event->trigger('pre.view.' . str_replace('/', '.', $template), $data);

        
$file DIR_TEMPLATE $template;

        if (
file_exists($file)) {
            
extract($data);

            
ob_start();

            require(
$file);

            
$output ob_get_contents();

            
ob_end_clean();
        } else {
            
trigger_error('Error: Could not load template ' $file '!');
            exit();
        }

        
// $this->event->trigger('post.view.' . str_replace('/', '.', $template), $output);

        
return $output;
    }

    public function 
helper($helper) {
        
$file DIR_SYSTEM 'helper/' str_replace('../''', (string)$helper) . '.php';

        if (
file_exists($file)) {
            include_once(
$file);
        } else {
            
trigger_error('Error: Could not load helper ' $file '!');
            exit();
        }
    }

    public function 
config($config) {
        
$this->registry->get('config')->load($config);
    }

    public function 
language($language) {
        return 
$this->registry->get('language')->load($language);
    }
}
Онлайн: 1
Реклама