title: Magento admin category page fails on PHP 5.4
body: <p>I have a Magento 1.6.2 site hosted on 1&amp;1.  Because of certain installed extensions I must have support for PHP version 5.3, but sadly the available options with 1&amp;1 are PHP 5.2 or something they call PHP Dev.  A quick <code>phpinfo()</code> shows that this is in fact PHP 5.4.</p>
  
  <p>My problem is that when I'm set to 5.4, the Categories page of the backend throws a 500 error.  Rolling back to 5.2 fixes the issue, but that breaks my product pages.  In the short term I can handle having to swap between them, but this is obviously unacceptable for a long-term solution when the site is handed to the client.</p>
  
  <p>Can anyone suggest where this incompatibility might lie, and what steps I might take to fix it?  My biggest impediment is that the hosting is on a shared server, and so I am not allowed to look at the Apache logs.</p>
  
  <p><strong>Update:</strong>  </p>
  
  <p>As per CCBlackburn's suggestion in the comments, I have tried to track the point that the error originates from, but I have to admit that I don't really understand the results I'm getting.  The URL of the categories page looks like this:</p>
  
  <p><code>example.com/index.php/admin/catalog_category/index/key/blahblah</code></p>
  
  <p>I presumed that <code>Mage_Adminhtml_CatalogController</code> would be the place to start looking, but a <code>Mage::log()</code> call as the first line in <code>indexAction()</code> failed to write to the log.</p>
  
  <p>I decided to move up the inheritance and  cut into the constructor, and so added the following to <code>Mage_Adminhtml_Controller_Action</code>:</p>
  
  <pre><code>function __construct(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response, array $invokeArgs = array()) {
      Mage::log('construct pre');
      parent::__construct($request,$response,$invokeArgs);
      Mage::log('construct post');
  }
  </code></pre>
  
  <p>This was better, as the first log call wrote to the file, but the second did not.</p>
  
  <p>Next I moved up the inheritance again, and modified the constructor of <code>Mage_Core_Controller_Varien_Action</code> as follows:</p>
  
  <pre><code>public function __construct(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response, array $invokeArgs = array())
  {
      Mage::log('request: '.$request);
      $this-&gt;_request = $request;
      Mage::log('response: '.$response);
      $this-&gt;_response= $response;
      Mage::log('pre set action');
      Mage::app()-&gt;getFrontController()-&gt;setAction($this);
      Mage::log('post set action');
      $this-&gt;_construct();
  }
  </code></pre>
  
  <p>The problem is that none of these log calls do anything.  This has me stumped, as surely calling <code>parent::__construct();</code> from <code>Mage_Adminhtml_Controller_Action</code> should execute at least one more log call before it does anything.  Unless the issue exists with the incoming values, but I don't know how I can check/debug that?</p>