spoko, leci xml

<?xml version="1.0" encoding="iso-8859-2" ?>
<odin>
<main>
<auth>DBAuth</auth>
</main>
<actions>
<view name="news">
<action>
<name>show</name>
</action>
<action>
<name>dodaj</name>
<roles>dodaj_newsa</roles>
</action>
<action>
<name>usun</name>
<roles>usun_newsa</roles>
</action>
<action>
<name>zmien</name>
<roles>zmien_newsa</roles>
</action>
</view>
<view name="default">
<action>
<name>main</name>
</action>
</view>
</actions>
</odin>
musze jeszcze dorobic wybieranie ról
@hawk wczoraj na ircu sie meczylismy sie czemu nie dziala taki kod ( problem dalej nie rozwiazany

) to jest dalsza czesc tej klasy
<?php
public function getDefaultAction() {
foreach($this->config->actions->view['default']->action as $action) {
return $action->name;
}
}?>
blad to
Fatal error: Objects used as arrays in post/pre increment/decrement must return values by reference in c:\gry\miniserver\uniserver3_1\diskw\www\odin\ConfigParser.php on line 76
to ta linia gdzie jest foreach
a z tym returnem to musialem przeoczyc, dzieki

edited
problem rozwiązany ale wyszedl potworek ;]
<?php
public function getDefaultAction() {
static $defaultActionName = null; if(empty($defaultActionName)) { foreach($this->config->actions->view as $view) {
if($view['name'] == 'default') {
foreach ($view->action as $action) {
$defaultActionName = $action->name;
}
}
}
}
return $defaultActionName;
} ?>
btw zmienilem kod wg zalecen hawka
<?php
/**
* Klasa ConfigParser
* Klasa przetwarzająca XMLowy plik konfiguracyjny
* @author Piotr 'bela_666' Belina
* @version 0.1
*/
class ConfigParser {
/**
*/
private $config;
/**
* Instancja
* @access private
*/
static private $instance = null;
/**
* Singleton
* @return object
*/
static public function getInstance
() { if(self::$instance == null) {
self::$instance = new ConfigParser;
}
return self::$instance;
}
/**
* Konstruktor
*/
private function __construct() {}
/**
* Ładuje plik konfiguracyjny
* @return object SimpleXML
*/
public function loadConfig() {
if(filemtime(\"config.xml\") == filemtime(\"config.php\")) { return $this->config;
} else {
$this->config = simplexml_load_file(\"config.xml\");
file_put_contents(\"config.php\", serialize($this->config));
return $this->config;
}
}
public function getViews() {
foreach($this->config->actions->view as $name) {
$view[] = $name['name'];
}
}
return $view;
}
public function getActions($category) {
if($this->config->actions->view['name'] == $category) {
foreach($this->config->actions->view->action->name as $actionName) {
$actions[] = $actionName;
}
}
return $actions;
} else {
return false;
}
}
public function getAuthorizationDriverName() {
foreach ($this->config->main as $main) {
$authDriver = $main->auth;
}
}
return $authDriver;
}
public function getDefaultAction() {
static $defaultActionName = null; if(empty($defaultActionName)) { foreach($this->config->actions->view as $view) {
if($view['name'] == 'default') {
foreach ($view->action as $action) {
$defaultActionName = $action->name;
}
}
}
}
return $defaultActionName;
}
}
?>