1 <?php
2 /* --------------------------------------------------------------
3 StaticGXCoreLoader.inc.php 2016-01-13
4 Gambio GmbH
5 http://www.gambio.de
6 Copyright (c) 2016 Gambio GmbH
7 Released under the GNU General Public License (Version 2)
8 [http://www.gnu.org/licenses/gpl-2.0.html]
9 --------------------------------------------------------------
10 */
11
12
13 /**
14 * Class StaticGXCoreLoader
15 *
16 * This class is for static use only.
17 * Usage example: $customerService = StaticGXCoreLoader::getService('Customer');
18 *
19 * @category System
20 * @package Loaders
21 * @subpackage GXCoreLoader
22 */
23 class StaticGXCoreLoader
24 {
25 /**
26 * GXCoreLoader Instance
27 *
28 * @var GXCoreLoaderInterface
29 */
30 protected static $gxCoreLoader = null;
31
32
33 /**
34 * Class Constructor
35 *
36 * @throws BadFunctionCallException
37 */
38 public function __construct()
39 {
40 throw new BadFunctionCallException('This class is for static use only.');
41 }
42
43
44 /**
45 * Get a service object instance.
46 *
47 * @param string $serviceName
48 *
49 * @return object
50 */
51 public static function getService($serviceName)
52 {
53 $gxCoreLoader = self::_getGXCoreLoader();
54 $service = $gxCoreLoader->getService($serviceName);
55
56 return $service;
57 }
58
59
60 /**
61 * Method depends on CodeIgniter database library
62 *
63 * @return CI_DB_query_builder
64 */
65 public static function getDatabaseQueryBuilder()
66 {
67 $gxCoreLoader = self::_getGXCoreLoader();
68 $databaseQueryBuilder = $gxCoreLoader->getDatabaseQueryBuilder();
69
70 return $databaseQueryBuilder;
71 }
72
73
74 /**
75 * Get GX Core Loader object instance.
76 *
77 * @return GXCoreLoaderInterface
78 */
79 protected static function _getGXCoreLoader()
80 {
81 if(self::$gxCoreLoader === null)
82 {
83 $gxCoreLoaderSettings = MainFactory::create('GXCoreLoaderSettings');
84 self::$gxCoreLoader = MainFactory::create('GXCoreLoader', $gxCoreLoaderSettings);
85 }
86
87 return self::$gxCoreLoader;
88 }
89 }
90