File: SpotClassAutoload.php

package info (click to toggle)
spotweb 20130826%2Bdfsg2-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 5,132 kB
  • ctags: 11,281
  • sloc: php: 31,367; xml: 1,009; sh: 148; makefile: 83
file content (72 lines) | stat: -rwxr-xr-x 2,528 bytes parent folder | download | duplicates (2)
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
<?php

function __autoload($class_name) {
	$classType = substr($class_name, 0, stripos($class_name, '_'));
	
	switch($classType) {
		case 'SpotPage'		: require_once 'lib/page/' . $class_name . '.php'; break;
		case 'SpotStruct'	: require_once 'lib/dbstruct/' . $class_name . '.php'; break;
		case 'SpotRetriever': require_once 'lib/retriever/' . $class_name . '.php'; break;
		case 'dbeng'		: require_once 'lib/dbeng/' . $class_name . '.php'; break;
		case 'dbfts'		: require_once 'lib/dbeng/' . $class_name . '.php'; break;
		case 'NzbHandler'	: require_once 'lib/nzbhandler/' . $class_name . '.php'; break;
		case 'Notifications': require_once 'lib/notifications/' . $class_name . '.php'; break;
		case 'Gettext'		: require_once 'lib/gettext/' . $class_name . '.php'; break;
		case 'Crypt'		: break; /* Crypt/Random.php uses class_exist to find a random generator, this triggers autoload */
		case 'SpotUbb'		: {
				require_once "lib/ubb/SpotUbb_parser.php";
				require_once "lib/ubb/TagHandler.inc.php";
				break;
		} # ubb
		case 'Services'		: 
		case 'Dao'			: {
			$parts = explode("_", $class_name);

			if (count($parts) == 2) {
				require_once ('lib/' . strtolower($parts[0]) . '/' . $class_name . '.php');
			} else {
				require_once ('lib/' . strtolower($parts[0]) . '/' . $parts[1] . '/' . $class_name . '.php');
			} # else
			break;
		} # dao
		case 'Mobile'		: {
			if ($class_name == 'Mobile_Detect') {
				require_once "Mobile_Detect.php";
			} # if

			break;
		} # 'Mobile'
		case 'SpotTemplateHelper' : {
			$tpl_name = substr($class_name, strlen('SpotTemplateHelper_'));

			require_once "templates/" . strtolower($tpl_name) . "/" . "SpotTemplateHelper_" . ucfirst($tpl_name) . ".php";
		} # SpotTemplateHelper
		case 'Net'			: { 
			$class_name = substr($class_name, 4);
			
			if ($class_name == 'NNTP_Client') {
				require_once "Net/NNTP/Client.php";
			} elseif ($class_name == 'NNTP_Protocol_Client') {
				require_once "Net/NNTP/Protocol/Client.php";
			} # else			
			break;
		} # net
		case 'Math'			: {
			if ($class_name == 'Math_BigInteger') {
				require_once "Math/BigInteger.php";
			} # if
			
			break;
		} # Math
		default				: {
			# Exceptions do not start with the word 'Exception', so we special case that
			$isException = substr($class_name, -1 * strlen('Exception')) == 'Exception';
			if ($isException) {
				require_once "lib/exceptions/" . $class_name . ".php";
				return ;
			} # if

			require_once 'lib/' . $class_name . '.php';
		} # default
	} # switch
} # __autoload