Zend Debugger documentation?

Posted on September 22, 2007
Filed Under Tech, Web development | 1 Comment

I’m working on a piece of PHP-code, and I need to examine if there are any bottlenecks in it. It’s not much code, about 170 lines, but there are quite some includes, object instantations, conditions, etcetera, and I can’t easily oversee if there’s anything that might cause a web server’s load to rise too much if this particular piece of code gets executed hundreds of times a second (I know that that is certainly going to happen).

So, what do I do? I do a quick check: do I have any debuggers or profilers running in the background which I can use to learn about this code? And I find there’s a Zend Debugger present, because I run a development version of Zend Platform.

Using get_extension_funcs() I know that the debugger has six functions I maybe could use, but I don’t know what they do. Can they give me some useful information? I don’t know. So I just call the functions to try them out. Nothing of use comes of it. So I decide to look up some documentation on these six functions.

Nothing on PHP.net. Nothing on Zend.com. Nothing on weblogs where Zend Debugger is mentioned. Nothing on forums. Nowhere can I find documentation on how to use Zend Debugger from my code. Doesn’t anyone use the debugger? Is it only meant for use in Zend Platform and IDE’s like the Eclipse PDT thing?

Does anyone know?

Fetching HTTP request headers in PHP

Posted on January 17, 2006
Filed Under Tech, Web development | Leave a Comment

Well, that was easy. I was looking for a way to fetch HTTP request headers in PHP, for the implementation of Conditional GET in an RSS module. PHP has this function, apache_request_headers(), which returns an array containing all the headers you could possibly need. Problem solved!

But; when the software you’re working on (in my case a content management system) has to work on both Linux/Apache and Windows/IIS servers, there’s a bit of a problem: Apache-functions won’t work if there’s no Apache to work with. Fortunately, you don’t need functions to fetch specific headers: PHP has already gathered them for you.

When a client requests a PHP-driven page on your web server, you can check for request headers in the $_SERVER array. For instance, the If-Modified-Since header is stored in $_SERVER['HTTP_IF_MODIFIED_SINCE']. This will work for every header you can think of: PHP just converts them all to the right variable. A header This-One-Doesnt-Exist becomes $_SERVER['THIS_ONE_DOESNT_EXIST'] in PHP code. Just like that!