summaryrefslogtreecommitdiff
path: root/libs/Smarty.class.php
blob: e1cdea1e61c7719356178c31d07980bf70a0b0c5 (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
<?php

/////////////////////////////////////////////////////////////////////
// This is a stub PSR-4 loading script that gets all the pieces of //
// Smarty 5.x loaded without requiring the use of composer. It's   //
// not really a 'class' file, but the name is used so we're        //
// backwards compatible with previous versions of Smarty.          //
//                                                                 //
// Example:                                                        //
// require_once("/path/to/smarty/libs/Smarty.class.php");          //
//                                                                 //
// $smarty = new Smarty\Smarty;                                    //
// $smarty->testInstall();                                         //
/////////////////////////////////////////////////////////////////////

define('__SMARTY_DIR', __DIR__ . '/../src/');

// Global function declarations
require_once __SMARTY_DIR . "/functions.php";

spl_autoload_register(function ($class) {
	// Class prefix
	$prefix = 'Smarty\\';

	// Does the class use the namespace prefix?
	$len = strlen($prefix);
	if (strncmp($prefix, $class, $len) !== 0) {
		// If not, move to the next registered autoloader
		return;
	}

	// Hack off the prefix part
	$relative_class = substr($class, $len);

	// Build a path to the include file
	$file = __SMARTY_DIR . str_replace('\\', '/', $relative_class) . '.php';

	// If the file exists, require it
	if (file_exists($file)) {
		require_once $file;
	}
});