blob: 2f64c211f73a7cd7b32483529f9fb93d4f361330 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
<?php defined('SYSPATH') OR die('No direct access allowed.');
/**
* Kohana Controller class. The controller class must be extended to work
* properly, so this class is defined as abstract.
*
* $Id: Controller.php 4365 2009-05-27 21:09:27Z samsoir $
*
* @package Core
* @author Kohana Team
* @copyright (c) 2007-2008 Kohana Team
* @license http://kohanaphp.com/license.html
*/
abstract class Controller_Core {
// Allow all controllers to run in production by default
const ALLOW_PRODUCTION = TRUE;
/**
* Loads URI, and Input into this controller.
*
* @return void
*/
public function __construct()
{
if (Kohana::$instance == NULL)
{
// Set the instance to the first controller loaded
Kohana::$instance = $this;
}
// URI should always be available
$this->uri = URI::instance();
// Input should always be available
$this->input = Input::instance();
}
/**
* Handles methods that do not exist.
*
* @param string method name
* @param array arguments
* @return void
*/
public function __call($method, $args)
{
// Default to showing a 404 page
Event::run('system.404');
}
/**
* Includes a View within the controller scope.
*
* @param string view filename
* @param array array of view variables
* @return string
*/
public function _kohana_load_view($kohana_view_filename, $kohana_input_data)
{
if ($kohana_view_filename == '')
return;
// Buffering on
ob_start();
// Import the view variables to local namespace
extract($kohana_input_data, EXTR_SKIP);
// Views are straight HTML pages with embedded PHP, so importing them
// this way insures that $this can be accessed as if the user was in
// the controller, which gives the easiest access to libraries in views
try
{
include $kohana_view_filename;
}
catch (Exception $e)
{
ob_end_clean();
throw $e;
}
// Fetch the output and close the buffer
return ob_get_clean();
}
} // End Controller Class
|