PHP 7.2.0 Beta 3 Released

opcache_invalidate

(PHP 5 >= 5.5.0, PHP 7, PECL ZendOpcache >= 7.0.0)

opcache_invalidateキャッシュされたスクリプトを無効にする

説明

boolean opcache_invalidate ( string $script [, boolean $force = FALSE ] )

この関数は opcode キャッシュのうち、特定のスクリプトを無効にします。 force パラメータが指定されていないか、 FALSE の場合は、スクリプトの更新時刻が opcode キャッシュ時の更新時刻より新しい場合にだけ無効にします。

パラメータ

script

無効にしたいスクリプトのパス

force

TRUE にすると、無効にする必要があるかどうかに関わらずスクリプトは無効にされます。

返り値

script の opcode キャッシュが無効にされたか、無効にする対象が存在しない場合は TRUE を返します。 opcode キャッシュ機能そのものが無効にされている場合は FALSE を返します。

参考

add a note add a note

User Contributed Notes 2 notes

up
9
joel at taotesting dot com
2 years ago
Beware that only existing files can be invalidated.

Instead of removing a file from opcache that you have delete, you need to call opcache_invalidate before deleting it.
up
2
kaare at colourbox dot com
1 year ago
Note that invalidation doesn't actually evict anything from the cache, it just forces a recompile. You can verify this by calling opcache_get_status() and seeing that the invalidated script is not actually removed from "scripts". This means it cannot be used as a more graceful alternative to opcache_reset() when the cache is full ("cache_full":true in status). The cache will eventually fill up and refuse to cache new requests if you do atomic deployment of PHP code by changing the web server's document root. It appears opcache_reset() is the only way to prevent this, but opcache_reset() can disable the cache for any amount of time while attempting to restart, causing load spikes.
To Top