Project

General

Profile

Revision 7

Added by Manuela about 5 years ago

added new class Autoloader

View differences:

branches/main/admin/interface/version.php
48 48

  
49 49
// check if defined to avoid errors during installation (redirect to admin panel fails if PHP error/warnings are enabled)
50 50
if(!defined('VERSION')) { define('VERSION', '2.10.1-dev'); }
51
if(!defined('REVISION')) { define('REVISION', '6'); }
51
if(!defined('REVISION')) { define('REVISION', '7'); }
52 52
if(!defined('SP')) { define('SP', ''); }
53 53

  
branches/main/framework/Autoloader.php
1
<?php
2

  
3
/*
4
 * Copyright (C) 2017 Manuela v.d.Decken <manuela@isteam.de>
5
 *
6
 * DO NOT ALTER OR REMOVE COPYRIGHT OR THIS HEADER
7
 *
8
 * This program is free software: you can redistribute it and/or modify
9
 * it under the terms of the GNU General Public License as published by
10
 * the Free Software Foundation, version 2 of the License.
11
 *
12
 * This program is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 * GNU General Public License 2 for more details.
16
 *
17
 * You should have received a copy of the GNU General Public License 2
18
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
 */
20
/**
21
 * Description of Autoloader
22
 *
23
 * @package      Installer
24
 * @copyright    Manuela v.d.Decken <manuela@isteam.de>
25
 * @author       Manuela v.d.Decken <manuela@isteam.de>
26
 * @license      GNU General Public License 3.0
27
 * @version      0.0.1
28
 * @revision     $Id$
29
 * @since        File available since 05.07.2017
30
 * @deprecated   no / since 0000/00/00
31
 * @description  xxx
32
 */
33
//declare(strict_types = 1);
34
declare(encoding = 'UTF-8');
35

  
36
namespace bin;
37

  
38
// use
39

  
40
/**
41
 * short description of class
42
 */
43
class Autoloader
44
{
45

  
46
    protected static $sInstallPath = '';
47
    protected static $aTransNs = [
48
        'bin'   => 'framework',
49
        'addon' => 'modules',
50
        'acp'   => 'admin'
51
    ];
52

  
53
    public static function autoLoad($sClassName)
54
    {
55
        $aMatches = \preg_split('=[\\\\/]=', $sClassName, null, \PREG_SPLIT_NO_EMPTY);
56
        // insert default NS if no one is given
57
        if (sizeof($aMatches) == 1) { array_unshift($aMatches, 'framework'); }
58
        // translate namespaces into real dir entries
59
        $aMatches[0] = str_replace(array_keys(self::$aTransNs), self::$aTransNs, $aMatches[0]);
60
        // first seek in namespace
61
        $sFilePath = self::$sInstallPath.\implode('/', $aMatches).'.php';
62
        if (is_readable($sFilePath)) {
63
            include $sFilePath;
64
        } else {
65
            // second seek in namespace with file prefix 'class.'
66
            $sTmp = array_pop($aMatches);
67
            $sFilePath = self::$sInstallPath.\implode('/', $aMatches).'/class.'.$sTmp.'.php';
68
            array_push($aMatches, $sTmp);
69
            if (is_readable($sFilePath)) {
70
                include $sFilePath;
71
            }
72
        }
73
    }
74
/**
75
 * register his autoloader
76
 */
77
    public static function doRegister()
78
    {
79
        self::$sInstallPath = rtrim(str_replace('\\', '/', dirname(__DIR__)), '/').'/';
80
        \spl_autoload_register([self, 'autoLoad']);
81
    }
82

  
83
/**
84
 * unregister his autoloader
85
 */
86
    public static function unRegister()
87
    {
88
        \spl_autoload_unregister([self, 'autoLoad']);
89
    }
90

  
91
}
0 92

  
branches/main/index.php
33 33
 * of the host and absolute path as the argument of location. Some, but
34 34
 * not all clients will accept relative URIs also.
35 35
 */
36

  
37
    $_SERVER['REQUEST_SCHEME'] = isset($_SERVER['REQUEST_SCHEME']) ? $_SERVER['REQUEST_SCHEME'] : 'http';
36 38
    $host       = $_SERVER['HTTP_HOST'];
37 39
    $uri        = rtrim(dirname($_SERVER['SCRIPT_NAME']), '/\\');
38 40
    $file       = 'install/index.php';
39
    $target_url = 'http://'.$host.$uri.'/'.$file;
41
    $target_url = $_SERVER['REQUEST_SCHEME'].'://'.$host.$uri.'/'.$file;
40 42
    $sResponse  = $_SERVER['SERVER_PROTOCOL'].' 307 Temporary Redirect';
41 43
    header($sResponse);
42 44
    header('Location: '.$target_url);
43 45
    exit;    // make sure that subsequent code will not be executed
44 46
}
45 47

  
46
if (!class_exists('frontend')) { require(WB_PATH.'/framework/class.frontend.php');  }
48
// if (!class_exists('frontend')) { require WB_PATH.'/framework/class.frontend.php';  }
47 49
// Create new frontend object
48 50
if (!isset($wb) || !($wb instanceof frontend)) { $wb = new frontend(); }
49 51

  

Also available in: Unified diff