|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2006-08-29 20:12 UTC] gopalv82 at yahoo dot com
[2006-08-30 11:28 UTC] jason at xc dot net
[2006-08-30 16:15 UTC] jason at xc dot net
[2006-08-30 16:18 UTC] rasmus@php.net
[2006-08-31 05:42 UTC] gopalv82 at yahoo dot com
[2006-09-02 09:23 UTC] gopalv82 at yahoo dot com
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Nov 05 15:00:01 2025 UTC |
Description: ------------ After upgrading to 3.0.11, I noticed that changes to certain class files were not being reflected on subsequent page loads (Apache had to be restarted). apc.stat seemed the likely culprit, but I verified that APC IS noticing changes, and some changes go into effect immediately while others only go into effect after Apache has been restarted. In addition to editing the file in place, I've tried overwriting the file with a new file and the results are the same. The problem does not occur with 3.0.8 or 3.0.10. php.ini settings: apc.shm_segments=3 apc.stat=1 To test, use the three files below. Access main.php three times: 1st time: Use the files below 2nd time: Change A_Base::getString() to: function getString() { return 'test'; } 3rd time: Edit class_base.php and add a syntax error APC notices the syntax error, but does not pick up on the change to A_Base::getString(). Using require_once with full paths gives the same results. Reproduce code: --------------- class_base.php -------------- <?php class A_Base { var $string; function A() { $this->setString('one'); } function setString($value) { $this->string = $value; return True; } function getString() { return $this->string; } } ?> class.php --------- <?php class A extends A_Base { function doSomething() { $a = 1 + 1; return $a; } } ?> main.php -------- <?php require_once "class_base.php"; require_once "class.php"; $a = new A; echo $a->getString(); ?> Expected result: ---------------- 1st time: 'one' 2nd time: 'test' 3rd time: Syntax Error Actual result: -------------- 1st time: 'one' 2nd time: 'one' 3rd time: Syntax Error