Joomla.it Forum
Non solo Joomla... => Sviluppo => : engp013a 02 Jul 2010, 13:59:15
-
Salve a tutti,
ho creato un modulo che mi consente di accedere ad una mia tabella e di visualizzare una riga nella testata del sito in base a certi calcoli.
Ho creato anche una componente che consentisse di accedere allo stesso record tramite il menu.
Dal momento che l'accesso ai dati e il calcolo per i filtri è uguale ho creato un modulo comune.
Nel modulo e nella componente la funzione è presente tramite l'istruzione include di PHP.
Il modulo funziona correttamente, ma appena accedo alla componente tramite il menu mi viene presentato l'errore Fatal error: Cannot redeclare .......
Per quanto riguarda la include nella componente l'ho fatta nel file .php presente nella directory models.
Mi potreste dare una mano?
Grazie mille
-
ciao,
non so se hai risolto, ma la soluzione è semplice: metti l'include sotto if verificando se è già definito il simbolo (costante/classe...) che php ti dice di non poter ri-dichiarare.
ciao,
marco
-
No, non ho ancora risolto. Però ho fatto la seguente prova:
Ho preso tutto il codice presente nella include e l'ho inserito dentro la function della componente, quindi senza più richiamare la function della include. Il risultato è che ottengo lo stesso errore su le altre function che utilizzo nel codice copiato all'interno della function della classe.
Per intenderci riporto un esempio:
Classe xxxx{
function yyyy{
function aaaa{
..........
..........
..........
}
altro codice
.................
$variabile = function aaaa;
altro codice
.................
}
}
Il risultato è Cannot redeclare.......
Spero di essere stato chiaro.
ciao,
non so se hai risolto, ma la soluzione è semplice: metti l'include sotto if verificando se è già definito il simbolo (costante/classe...) che php ti dice di non poter ri-dichiarare.
ciao,
marco
-
eri già stato chiaro, forse non lo sono stato io.
1.
hai usato require_once, vero?
2.
nel caso quanto sopra non funzioni:
inserisci come prima riga nel file da includere:
define("MYLIBRARYNAME", "1");
cambia il require in componente/moduli in
if (!defined('MYLIBRARYNAME')) {
require_once('mylibraryname.php');
}
ciao,
marco
-
ocio, stai ridichiarando una classe