Tôi đang xây dựng một khung nơi các cá thể sản phẩm sử dụng các tệp khung chính, cho đến khi có bản sao của phiên bản riêng của tệp đó. Để đạt được điều này tôi đã thực hiện như sau:PHP bao gồm thứ tự đường dẫn và bộ nhớ cache trạng thái
set_include_path(MY_PRODUCT_ROOT.'/' . PATH_SEPARATOR . MY_FRAMEWORK_ROOT.'/');
Vì vậy, nếu tôi gọi include('view-users.php');
đầu tiên nó sẽ tìm trong MY_PRODUCT_ROOT cho /view-users.php và nếu đó là không tìm thấy, sau đó nó sẽ tìm đến MY_FRAMEWORK_ROOT/xem người dùng .php.
Quy trình này hoạt động rất độc đáo cho đến khi tôi thêm tệp vào thư mục gốc của sản phẩm. Tôi biết rằng PHP/Apache đang lưu vào bộ nhớ đệm và một người sẽ nghĩ rằng để chạy clearstatcache(true);
để xóa mọi bộ nhớ đệm trạng thái. PHP có khả năng sử dụng file_exists bên trong nó bao gồm(); và cho rằng tệp mới vẫn không tồn tại. Tôi đã thử khởi động lại Apache mà không có hiệu lực.
Thật không may khi chạy clearstatcache(true);
cũng không giúp ích gì. Chỉ một lần tôi đã xóa MY_FRAMEWORK_ROOT/tệp, hãy nhớ xóa bộ nhớ cache và thử lại, do đó tìm MY_PRODUCT_ROOT/tệp.
Im một chút bối rối, tôi biết chúng tôi cần phải làm mới hiểu PHP/Apache cho dù các file (s) tồn tại hay không, nhưng clearstatcache(true);
không được giúp đỡ ...
Bất kỳ ý tưởng?
CẬP NHẬT: Sửa chữa, khởi động lại Apache có vẻ như trợ giúp ngay bây giờ. Tôi nhắc lại rằng điều này chỉ xảy ra khi cố gắng ADD một tập tin vào MY_PRODUCT_ROOT, để chồng lên nhau một file MY_FRAMEWORK_ROOT hiện có, cho tùy
CẬP NHẬT: môi trường phát triển là Zend Server CE PHP 5.3.14 trên Windows, môi trường sản xuất Centos Linux httpd , PHP 5.3+. Thực tế là trình tối ưu hóa Zend được bật trên môi trường dev của tôi có thể có hiệu lực, Ngoài ra, không sử dụng APC hoặc bất kỳ tập lệnh lưu trữ bộ nhớ đệm nào khác
Để chính xác hơn, khởi động lại apache chỉ hoạt động khi gọi clearstatcache. Tôi thực sự phải xóa tệp khuôn khổ, sau đó tải lại trang và đặt lại tệp khuôn khổ – Prof83
bạn đã bật bộ nhớ cache apc chưa? (hoặc bộ nhớ cache mã hóa khác) –
Tôi cũng không thể tạo lại sự cố của bạn trên php-5.3.3 và apache 2.2.16. Bạn có thể nêu thêm thông tin về môi trường của mình không? – Lars