1 pièce(s) jointe(s)
Que veux dire: Call to private ErrorLogging::__construct() from invalid context
Bonjour,
Je viens de récupérer un script d'un site XYZ et j'essaye de l'exécuter car pourrait solutionner un de mes gros problèmes.
Je reçois le message suivant quand j'essaye l'exécution sous APACHE 2.2.15
Citation:
F:\WebSites\errorlogging\index.php:0
Code:
1 2 3 4
|
PHP Fatal error: Call to private ErrorLogging::__construct() from invalid context in F:\WebSites\errorlogging\index.php on line 4
PHP Stack trace:
PHP 1. {main}() F:\WebSites\errorlogging\index.php:0 |
Je n'ai modifié que le fichier index.php
Code:
1 2 3 4 5 6 7 8 9
|
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . "/class/errorlogging.php" ;
/*Whatever*/
new ErrorLogging;
$i = 10 ;
$i = $i / O ;
/*Whatever*/
?> |
En ajoutant les lignes en gras.
Et un fichier config directement inclut dans la classe ErrorLogging,
Code:
1 2 3 4 5 6 7 8
| define('DEBUGGING', TRUE);
define('ADMIN_ERROR_MAIL' , 'admin@jecrapahute.fr');
define('SEND_ERROR_MAIL' , FALSE);
define('SEND_ERROR_FROM' , 'errors@jecrapahute.fr');
define('IS_WARNING_FATAL' , TRUE);
define('ERROR_LOGGING' , TRUE);
define('ERROR_LOGGING_FILE' , 'f:/phperrlog/error.log');
define('SITE_GENERIC_ERROR_MSG' , '<h1>Portal Error!</h1>'); |
Je tiens à préciser que le fichier en gras, après triple-check existe bien !!!
La classe en question se trouve en pièce jointe.
Merci à ceusssss qui me donneront la lumière :lahola:
Esteban
Que veux dire: Call to private ErrorLogging::__construct() from invalid context
Merci mais semble non suffisant.....
J'ai commenté le "private" du __constructeur, pas assez....
J'ai supprimé tous les "private", cela bouge mais pas suffisant....
PHP me dit:
Code:
1 2 3
| [04-Oct-2010 08:54:03] PHP Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in F:\WebSites\errorlogging\class\ErrorLogging.php on line 36
[04-Oct-2010 08:54:03] PHP Stack trace:
[04-Oct-2010 08:54:03] PHP 1. {main}() F:\WebSites\errorlogging\index.php:0 |
Ce qui revient en regardant le code à une autre question:
Code:
1 2 3 4 5 6 7 8
|
class ErrorLogging
{
/**
* @var $_backTrace Backtrace message in _customError() method
* @see _customError
*/
==> 36 $_backTrace; |
Mais dans ma précipitations, j'ai supprimé tous les "private" des méthodes, ce que j'ai rétablit....
Et j'obtiens:
Code:
1 2 3 4 5 6 7 8
|
Website Generic Error
ERROR NO : 2
TEXT : Division by zero
LOCATION : F:\WebSites\errorlogging\index.php, line 6, at October 4, 2010, 9:02 am
Showing Backtrace :
|
Qu'il n'y ait pas de backtrace dans ce cas me semble normal pour un test de 5 lignes....
Je ne ferme pas la discussion car souhaiterait savoir si c'est bien "normal"....
Merci en tout cas....8-)
Esteban
Que veux dire: Call to private ErrorLogging::__construct() from invalid context
Merci à vous deux....
L'idée d'un constructeur Private (après coup) me semble tordue, mais je débute en PHP5.... et OOP donc....
Et si l'auteur de ce script publié sur une site qui a pignon sur rue en FR l'a fait, ce n'est pas par hasard !
Mais si je rends le constructeur public, cela fonctionne....
Alors.... que veut le peuple.... si je reçois un errata sous peu, j'aurai la confirmation... !
Merci à vous 2 ..... :mouarf::mouarf: