Ciao ragazzi, ho un grosso dilemma...
ho 3 classi (Warning, Notice, Error) con dei metodi addMessage e getMessages. Io vorrei fare in modo di avere una situazione del genere
Codice PHP:
function mioMetodo(){
if(bla bla bla bla){
esegui;
}
else{
Warning::addMessage("l'esecuzione di questo metodo è stata ignorata");
}
}
function mioMetodo2(){
if(bla bla bla bla){
esegui;
}
else{
Error::addMessage("l'esecuzione di questo metodo è stata ignorata e il programma verrà terminato");
}
}
Ora, vorrei avere una gestione dei messaggi, creata all'intero delle 3 classi (Warning, Notice, Error) del tipo
Codice PHP:
CLASSE WARNING
addMEssage($msg){
print "Il metodo $nomeMetodo della classe $nomeClasse richiamato da $classeCheRichiamaIlMetodo nel $nomeDelFile alla linea $lineaDelFile ha prodotto un warning: $msg";
}
CLASSE ERROR
addMEssage($msg){
print "Il metodo $nomeMetodo della classe $nomeClasse richiamato da $classeCheRichiamaIlMetodo nel $nomeDelFile alla linea $lineaDelFile ha prodotto un error: $msg";
die();
}
utilizzando debug_backtrace() ho tutte quelle informazioni che mi servono; il problema è che, non sapendo chi è il chiamante del metodo che va in errore non riesco a capire come possa risalire lo stack per utilizzare le informazioni in quanto potrei avere, ad esempio, due situazioni del tipo
Codice PHP:
index.php
new classeA();
classeA.php
classeA{
function __construct(){
new classeB();
}
classeB.php
classeB{
function __construct(){
new classeX()->mioMetodo();
}
}
index.php
new classeA();
classeA.php
classeA{
function __construct(){
new classeX()->mioMetodo();
}
quindi lo stack, giustamente, è diverso e cambia il livello del chiamante...sto sbagliando tutta l'architettura, vero?
Cosa mi consigliate come architettura per un sistema di gestione warning, errore, notice?
O se la mia attuale non è così errata, come posso valorizzare le variabili che mi servirebbero?
Grazie a tutti e scusate per la lunghezza