Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incompatible method declaration in Piwik_Log_APICall #821

Closed
anonymous-matomo-user opened this issue Jun 22, 2009 · 7 comments
Closed

Incompatible method declaration in Piwik_Log_APICall #821

anonymous-matomo-user opened this issue Jun 22, 2009 · 7 comments
Labels
Bug For errors / faults / flaws / inconsistencies etc. Major Indicates the severity or impact or benefit of an issue is much higher than normal but not critical.
Milestone

Comments

@anonymous-matomo-user
Copy link

Hi,

I just upgraded to PHP 5.2.10 (from 5.2.9) and now I get the following error accessing piwik:

Declaration of Piwik_Log_APICall::log() should be compatible with that of Piwik_Log::log() 
in '/path/to/piwik/core/Log/APICall.php' at the line 52

Here's the stack trace:

#0  Piwik_ErrorHandler(2048, Declaration of Piwik_Log_APICall::log() should be compatible with that of Piwik_Log::log(), /path/to/piwik/core/Log/APICall.php, 52, Array ()) called at [/path/to/piwik/core/Piwik.php:1232]
#1  Piwik::createLogObject() called at [/path/to/piwik/core/Piwik.php:1232]
#2  Piwik::createLogObject() called at [/path/to/piwik/core/FrontController.php:232]
#3  Piwik_FrontController->init() called at [/path/to/piwik/index.php:53]

Benjamin

@robocoder
Copy link
Contributor

(In [1247]) fixes #821, refs #819

@anonymous-matomo-user
Copy link
Author

Attachment:
logger.patch

@anonymous-matomo-user
Copy link
Author

Hi,

I just wrote a detailed bug report concerning my reopening of the bug, but when I tried to add the attachment, Trac unfortunately killed the text content. Sorry for the inconvenience. Here it is again:

The method declaration mismatch still occurs, as you can see, in two lines of the piwik code:

Declaration of Piwik_Log_Error::log() should be compatible with that of Piwik_Log::log() 
in '/var/www/stats.genetsis.de/htdocs/piwik/core/Log/Error.php' at the line 65

and

Declaration of Piwik_Log_APICall::log() should be compatible with that of Piwik_Log::log() 
in '/var/www/stats.genetsis.de/htdocs/piwik/core/Log/APICall.php' at the line 62

Changing the method signatures would be a quick and working fix for that. See the attached file logger.patch.

Anyhow, I did some research regarding the PHP version issue and found this bug addressing an inconsistency issue between the PHP's documentation and its actual behaviour when using set_error_handler. PHP now always executes the custom error handler function regardless of any error_reporting() settings.

Because of that, and because of the two errors mentioned above, piwik's error handler now fails (see ErrorHandler.php, line 37) and as a result of that, it blindly exits the application.

A fix for that could be to ignore non-fatal errors such as E_NOTICE, E_USER_NOTICE and E_STRICT before exiting (see attached file errorhandler.patch), but I suggest that you do some detailed testing on that and PHP 5.2.10 in general. :-)

Benjamin

@anonymous-matomo-user
Copy link
Author

Attachment:
errorhandler.patch

@mattab
Copy link
Member

mattab commented Jun 23, 2009

if it is a bug in PHP then we don't want to work around this, especially since the bug appears to have been fixed in PHP CVS.

@robocoder
Copy link
Contributor

(In [1249]) fixes #821 - rename the log() method in subclasses of Piwik_Log because
PHP (by design) isn't intended to support overloading to the extent of other
OOP languages (i.e., "multiple methods with the same name but different
quantities and types of arguments")

ref: http://ca.php.net/manual/en/language.oop5.overloading.php

this change arises because PHP 5.2.10 escalated the log message
priority for incompatible method declarations

@robocoder
Copy link
Contributor

(In [1250]) refs #821 - revised patch

@anonymous-matomo-user anonymous-matomo-user added this to the Piwik 0.4.1 milestone Jul 8, 2014
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug For errors / faults / flaws / inconsistencies etc. Major Indicates the severity or impact or benefit of an issue is much higher than normal but not critical.
Projects
None yet
Development

No branches or pull requests

3 participants