/[cvs]/nfo/php/libs/org.netfrag.glib/Application/Core.php
ViewVC logotype

Contents of /nfo/php/libs/org.netfrag.glib/Application/Core.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (show annotations)
Mon Feb 3 14:42:28 2003 UTC (21 years, 6 months ago) by joko
Branch: MAIN
Changes since 1.1: +54 -8 lines
+ logging (LOG_DEBUG)
+ methods for accessing configuration variables

1 <?
2 // ---------------------------------------------------------------------------
3 // $Id: Core.php,v 1.1 2003/02/03 05:00:01 joko Exp $
4 // ---------------------------------------------------------------------------
5 // $Log: Core.php,v $
6 // Revision 1.1 2003/02/03 05:00:01 joko
7 // + initial commit
8 //
9 // ---------------------------------------------------------------------------
10
11
12 /*
13
14 ------------------------------------------------------------
15 How to use this?
16 ------------------------------------------------------------
17
18 require_once("../etc/defaults.php");
19 require_once("../etc/includes.php");
20
21 $init =
22 array(
23 'machine' => 'grasshopper',
24 'appname' => 'pub',
25 'resources' => array(
26 'machines' => '../etc/machines.php',
27 ),
28 'run' => array(
29 'boot' => array(
30 'scripts' => array( '../core/boot/boot.php' ),
31 //'objects' => array(),
32 'methods' => array( 'e_init', 'e_start', 'e_shutdown' ),
33 ),
34 ),
35 );
36
37 $appConfig = mkObject('Application::Config', $init);
38
39 $app = mkObject('Application::Core', $appConfig);
40 $app->run();
41
42 ------------------------------------------------------------
43
44 */
45
46
47 class Application_Core extends DesignPattern_Logger {
48
49 var $_config;
50
51 function Application_Core($initCfgObject = null) {
52 $this->_config = $initCfgObject;
53 }
54
55 function run() {
56 //print Dumper($this->_config);
57
58 parent::constructor();
59
60 $this->log(get_class($this) . "->run: begin", LOG_INFO);
61
62 $cfg = $this->getConfig();
63
64 //print Dumper($cfg); exit;
65
66 if (!is_array($cfg[run])) { return; }
67
68 foreach ($cfg[run] as $key => $container) {
69
70 //print "key: $key<br>";
71
72 // include files
73 if (is_array($container[scripts])) {
74 foreach ($container[scripts] as $script) {
75 $this->_require_once_isolated($script);
76 $this->_config->merge();
77 }
78 }
79
80 // run procedural functions
81 if (is_array($container[methods])) {
82 foreach ($container[methods] as $method) {
83 $this->log(get_class($this) . "->run: calling function in global namespace: '$method'", LOG_DEBUG);
84 call_user_func($method);
85 }
86 }
87
88 }
89
90 $this->log(get_class($this) . "->run: end", LOG_INFO);
91
92 }
93
94 function getConfig($var = null) {
95 return $this->_config->getPart($var);
96 }
97
98 function _require_once_isolated($file) {
99 $this->log(get_class($this) . "->_require_once_isolated: $file", LOG_DEBUG);
100 if (require_once($file)) {
101 return 1;
102 }
103 }
104
105 function setConfigVar($var, $val) {
106 //print "$var=$val<br>";
107 $this->_config->setVar($var, $val);
108 }
109
110 function getConfigVar($var) {
111 return $this->_config->getVar($var);
112 }
113
114 }
115
116 ?>

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed