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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (hide annotations)
Wed Mar 5 23:16:47 2003 UTC (21 years, 5 months ago) by joko
Branch: MAIN
Changes since 1.4: +51 -32 lines
updated docu - phpDocumentor is very strict about its 'blocks'...

1 joko 1.1 <?
2 joko 1.5 /**
3     * This file contains the Application::Core module.
4     *
5     * @author Andreas Motl <andreas.motl@ilo.de>
6     * @package org.netfrag.glib
7     * @name Application::Core
8     *
9     */
10    
11    
12 joko 1.1 // ---------------------------------------------------------------------------
13 joko 1.5 // $Id: Core.php,v 1.4 2003/03/03 21:11:01 joko Exp $
14 joko 1.1 // ---------------------------------------------------------------------------
15 joko 1.2 // $Log: Core.php,v $
16 joko 1.5 // Revision 1.4 2003/03/03 21:11:01 joko
17     // mungled the namespaces
18     //
19 joko 1.4 // Revision 1.3 2003/02/09 17:05:15 joko
20     // + minor update related to new log level constants
21     // + restructured get-/setter methods
22     //
23 joko 1.3 // Revision 1.2 2003/02/03 14:42:28 joko
24     // + added logging
25     // + methods for accessing configuration variables
26     //
27 joko 1.2 // Revision 1.1 2003/02/03 05:00:01 joko
28     // + initial commit
29     //
30 joko 1.1 // ---------------------------------------------------------------------------
31    
32    
33 joko 1.5 $appConfig = mkObject('Application::Config', $init);
34 joko 1.1
35 joko 1.5 $app = mkObject('Application::Core', $appConfig);
36     $app->run();
37 joko 1.1
38    
39 joko 1.5 loadModule('Class::Logger');
40 joko 1.1
41    
42 joko 1.5 /**
43     * This is the Application::Core module.
44     *
45     * How to use this?
46     *
47     * <code>
48     * require_once("../etc/defaults.php");
49     * require_once("../etc/includes.php");
50     *
51     * $init =
52     * array(
53     * 'machine' => 'grasshopper',
54     * 'appname' => 'pub',
55     * 'resources' => array(
56     * 'machines' => '../etc/machines.php',
57     * ),
58     * 'run' => array(
59     * 'boot' => array(
60     * 'scripts' => array( '../core/boot/boot.php' ),
61     * //'objects' => array(),
62     * 'methods' => array( 'e_init', 'e_start', 'e_shutdown' ),
63     * ),
64     * ),
65     * );
66     * </code>
67     *
68     *
69     * @author Andreas Motl <andreas.motl@ilo.de>
70     * @package org.netfrag.glib
71     * @subpackage Application
72     * @name Application::AbstractBase
73     *
74     */
75 joko 1.4 class Application_Core extends Class_Logger {
76 joko 1.1
77     var $_config;
78    
79     function Application_Core($initCfgObject = null) {
80     $this->_config = $initCfgObject;
81     }
82    
83     function run() {
84     //print Dumper($this->_config);
85 joko 1.2
86     parent::constructor();
87    
88 joko 1.3 $this->log("-----------------------------------------------------------------", PEAR_LOG_INFO);
89     $this->log(get_class($this) . "->run: begin", PEAR_LOG_INFO);
90 joko 1.2
91     $cfg = $this->getConfig();
92    
93     //print Dumper($cfg); exit;
94    
95     if (!is_array($cfg[run])) { return; }
96    
97     foreach ($cfg[run] as $key => $container) {
98    
99     //print "key: $key<br>";
100 joko 1.1
101     // include files
102 joko 1.2 if (is_array($container[scripts])) {
103     foreach ($container[scripts] as $script) {
104     $this->_require_once_isolated($script);
105     $this->_config->merge();
106     }
107 joko 1.1 }
108    
109     // run procedural functions
110 joko 1.2 if (is_array($container[methods])) {
111     foreach ($container[methods] as $method) {
112 joko 1.3 $this->log(get_class($this) . "->run: calling function in global namespace: '$method'", PEAR_LOG_DEBUG);
113 joko 1.2 call_user_func($method);
114     }
115 joko 1.1 }
116 joko 1.2
117     }
118    
119 joko 1.3 $this->log(get_class($this) . "->run: end", PEAR_LOG_INFO);
120 joko 1.2
121     }
122    
123     function getConfig($var = null) {
124 joko 1.3 return $this->_config->get($var);
125 joko 1.2 }
126    
127     function _require_once_isolated($file) {
128 joko 1.3 $this->log(get_class($this) . "->_require_once_isolated: $file", PEAR_LOG_DEBUG);
129 joko 1.2 if (require_once($file)) {
130     return 1;
131 joko 1.1 }
132     }
133    
134 joko 1.2 function setConfigVar($var, $val) {
135     //print "$var=$val<br>";
136 joko 1.3 $this->_config->set_absolute($var, $val);
137 joko 1.2 }
138    
139     function getConfigVar($var) {
140 joko 1.3 return $this->_config->get_absolute($var);
141 joko 1.2 }
142    
143 joko 1.1 }
144    
145     ?>

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