Forum Moderators: coopster

Message Too Old, No Replies

PHP caching classes

         

Sathallrin

6:40 pm on Apr 17, 2007 (gmt 0)

10+ Year Member



I'm getting a really odd behavior with php. It is caching my classes.

I have a very simple file:

<?php
class testclass{
}
?>

The first time I run the page it works correctly and creates the class. If I run it again it simply does this:
Fatal error: Cannot redeclare class testclass in C:\Inetpub\default\index.php on line 2

It doesn't matter what class name I use. The first time it executes it saves the class for future requests.

My setup is IIS 6 on Windows Server 2003
PHP 5.2.1 installed as an ISAPI extension.

If I restart IIS it seems to clear this cache and executes correctly the first time. But then it stays cached.

*note This also occurs with define such as:
define('test', true);
executes the first time, states it is already defined the second.

Anyone have any idea what would be causing this to happen? I've never seen this situation before.

[edited by: Sathallrin at 6:42 pm (utc) on April 17, 2007]

phparion

7:03 pm on Apr 17, 2007 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member Top Contributors Of The Month



in html

<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">

or in php

<?
Header('Cache-Control: no-cache');
Header('Pragma: no-cache');
?>

Sathallrin

7:08 pm on Apr 17, 2007 (gmt 0)

10+ Year Member



@phparion
Thanks for the quick reply, but that prevents the browser from caching html code. However, the issue I'm having is the server is caching the php classes and definitions between requests.

I'm beginning to think that this "bug" might be useful as it could reduce my php parsing time on my server, as the classes will be saved and I don't need to include them on my pages. However, I would still like to know what the issue is as I am unable to change a class without restarting IIS every time.

[edited by: Sathallrin at 7:22 pm (utc) on April 17, 2007]