Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem Maximum function nesting level

[es] :: PHP :: Problem Maximum function nesting level

[ Pregleda: 1177 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

alfa-pro
Pancevo

Član broj: 241818
Poruke: 476
*.dynamic.isp.telekom.rs.



+7 Profil

icon Problem Maximum function nesting level24.05.2012. u 17:21 - pre 144 meseci
Neznam kako da fiksiram pokusao sam i sa XDebug profilerom i ostalim stvarima ali neide.

Greska koju dobijam je sledeca:
Fatal error: Maximum function nesting level of '100' reached, aborting! in C:\wamp\www\alfa\lib\common.php on line 39

E sada kako se to desilo.

Radio sam DB Mysql klasu koja ima metodu db_connect(). Moja zamisao te metode je da uzima podatke iz zasebnog konfig fajla.
Na primer ovo je konfig file:
Code:

$config['db_name']   = 'test';
$config['username']  = 'root';


Da bih zaobisao direktno pisanje i prikljucivanje fajla u datu metodu ja sam napisao posebnu funkciju koja ce da inportuje odgovarajuci config fajl...

Ovo je samo deo klase koju sam krenuo da radim. Nazalost problem je nastao u metodi db_connect() kada sam pozvao get_config().
Code:

    /**
     * Constructor.  Accepts one parameter containing the database
     * connection settings.
     *
     * @param array
     */    
     
    public function __construct($param = NULL)
    {
        $this->data = $param;
        
        if (is_array($this->data))
        {
            foreach ($this->data as $key => $value)
            {
                $this->$key = $value;
            }
        }
    }
    
    /**
     * Database connect. Non-persistent database connection  
     * @return    resource
     */    
     
    public function db_connect()
    {
        get_config('database');
    }
    
}


Moja funkcija koja preuzima odgovarajuci konfig je sledeca:

Code:

/*
 * Bring configuration file
 * @Returns TRUE if the config or directory specified by filename exists and is readable, FALSE otherwise.
 */
 
if ( ! function_exists('get_config'))
{
    function get_config($name)
    {
        $path = CONFIGPATH . $name .EXT;
        
        if(file_exists($path))
        {
            require($path);
        }
        else
        {
            throw new Exception('Config file is missing');
        }

        log_message('Config is missssing');        
    }
}


Problem koji izaziva onu gresku je kada ja npr pozovem u Database klasi get_config(database) i npr u drugoj klasi pozovem istu funkciju get_config('general') koji sadrzi dodatna konfiguracione stvari.

Nerazumem zasto mi nedozvoljava da koristim istu funkciju vise puta na vise mesta?

Evo jos jedan primer gde mi prijavljuje istu gresku.

Radio sam funkciju za sacuvavnje log poruka, u toj funkciji sam pozvao isto funkciju get_config(general) da bih iz genera.php konfiga uzeo
u kom formatu da se prikazuje i upisuje datum. $config['date_format'] = 'Y-m-d H:i:s';

Code:

if ( ! function_exists('log_message'))
{
    function log_message($message, $log_name = 'log_', $date = NULL, $level = NULL)
    {
        if ($log_name == NULL && $date == NULL)
        {
            get_config('general');
            
            $date = $config['date_format'];
            $name = $log_name.$date; 
                        $tmp  = '[' . $config['date_format'], mktime()) . '] ' . $message;            
        }
        else
        {
                $open_log = fopen(LOGPATH. $name, 'a');
            fwrite($open_log, $tmp. '\n');
            fclose($fopen);
        }
    }
}


pokusao sam i sa ovim i nece.

ini_set('xdebug.max_nesting_level', 200);


[Ovu poruku je menjao alfa-pro dana 24.05.2012. u 18:33 GMT+1]
Kada vidjamo uvek ista lica, na kraju ona postaju deo našeg života. A kada postanu
deo našeg života,
onda žele i da nam ga izmene. I ako ne bude po njihovom, nije im pravo. Jer, svaki
čovek ima tačnu predstavu kako bi trebalo da živimo svoj život. A nikad nemaju pojma
kako treba da prožive sopstveni život.
 
Odgovor na temu

[es] :: PHP :: Problem Maximum function nesting level

[ Pregleda: 1177 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.