Strict Standards Error in Joomla

We had an interesting case a couple of days ago, one of our clients came to us and told us that while installing Joomla on a new server, he got the following error (multiple times):

Strict Standards: Accessing static property JCache::$_handler as non static in /web/vhosts/ourclientsdomainname.com/libraries/joomla/cache.php on line 420

It was not the first time that we saw this error (we saw it in some generic PHP code), but it was the first time we have seen it when someone was installing Joomla. So, what is this error about and how can someone go about fixing it?

First, it’s not really an error, it’s just a notice because apparently the PHP installation is using strict standards. So, in php.ini the strict standards are enabled. This is actually a good thing and it enforces some good coding practices, however, enabling strict standards can often result in problems in some legacy code.

So how can someone fix this problem?

Well, there are two ways, the hard way and the easy way. The hard way consists of someone actually going through the code and fixing each line of the code that has a problem, which is not recommended.

The easy way is to just change the warning level on the Joomla application to suppress the notices by adding the following lines to your index.php (both in the root of your website and in the administrator folder):

error_reporting(E_ALL & ~E_NOTICE);

The above line will show all errors (including warnings) with the exception of notices (again, a notice is not really an error, but from PHP’s perspective, it is).

Another easy way of doing this is changing the php.ini file, by searching for the error_reporting constant, and changing its value to E_ALL & ~E_NOTICE. So the line will be the following:

error_reporting = E_ALL & ~E_NOTICE;

If you are trying to do the above but it’s not working for you, then, as always, you can contact us, and we’ll definitely help you!

3 Responses to “Strict Standards Error in Joomla”
  1. Comment by rajith — July 9, 2012 @ 1:29 am

    their is a much easier method. Go to Joomla backend-> global configurations->server->Error reporting >select “none”

  2. Comment by CANK — May 13, 2013 @ 2:15 am

    Hi. I tried to remove the error reporting but my front end webpage cannot be loaded. I’m running Joomla 1.5 on PHP 5.4.10. And I suspsect is the PHP codes are not compatible.

    Kindly advise.

  3. Comment by Fadi — May 16, 2013 @ 5:54 am

    Hi,

    The PHP code is compatible, but it must be that the error settings are being overriden somewhere else.

    Additionally, the PHP code is standard – meaning that it might not cause your webpage not to load. Make sure you’re not missing anything (such as a semicolon). If in doubt, hire a programmer (or hire us) to fix your problem.

Leave a comment