PHP 7.0.26 Released

apc_bin_dump

(PECL apc >= 3.1.4)

apc_bin_dump指定したファイルおよびユーザー変数のバイナリダンプを取得する

説明

string apc_bin_dump ([ array $files = NULL [, array $user_vars = NULL ]] )

指定したファイルおよびユーザー変数のバイナリダンプを APC キャッシュから返します。 files や user_vars に NULL を指定すると、全エントリを表します。 一方、array() を渡すと何もダンプしません。

パラメータ

files

ファイル。NULL を渡すと全エントリを意味し、 array() を渡すと何もダンプしません。

user_vars

ユーザー変数。NULL を渡すと全エントリを意味し、 array() を渡すと何もダンプしません。

返り値

指定したファイルおよびユーザー変数のバイナリダンプを APC キャッシュから返します。 APC が有効でない場合は FALSE、未知のエラーが発生した場合は NULL を返します。

参考

  • apc_bin_dumpfile() - キャッシュされたファイルやユーザー変数のバイナリダンプをファイルに出力する
  • apc_bin_load() - バイナリダンプを APC のファイル/ユーザーキャッシュに読み込む
add a note add a note

User Contributed Notes 1 note

up
-2
mightye+php at gmail dot com
5 years ago
These items aren't clear to me from the documentation.

In order to store file opcodes (the first parameter), you MUST have apc.stat set to 0, and filenames passed into the first parameter MUST be absolute (full) paths.  Any other configuration will generate a warning and will not dump the files.  Also, apc.stat cannot be changed at runtime (so you can't do ini_set('apc.stat', 0) prior to executing the apc_bin_dump* functions), it must be set in php.ini (or otherwise defined prior to execution of your script; for example for PHP CLI you can do "php -d apc.stat=0"). 

The files passed to apc_bin_dump*() must already exist in the opcode cache; you should do apc_compile_file() on any filenames you're not certain will be in the cache already (best practice is to do it for all files to be certain they are up to date since the mandatory apc.stat=0 disables checking whether the files are up to date, but apc_compile_file() will always refresh the file's cache).

When doing apc_bin_load*(), you do not have to have apc.stat=0, but failing to have this value may overwrite your restored value with a newly created opcode from the file on the disk if anything attempts to include that file again (even other scripts at a later time).

If you're intending to just store variables (not file opcodes), you don't have to have apc.stat=0, but you will still get a warning about apc.stat not being the correct value, even if the first parameter is an empty array() or null.

The format for the $user_vars parameter is array('varname1',..,'varnameN').  The values which are stored come out of the APC data store (not the local variable scope, nor can these be values which are passed into this function).  You must first apc_store() any value you wish to persist with these functions.  Likewise, these variables are restored to the APC data store by apc_bin_load*() rather than the local scope or as a return value in some form. 

So if your intent is to store a local variable for later use, first apc_store('varname', $varname) (assuming you have no collisions with other scopes using the same 'varname') before calling apc_bin_dump*().  When restoring, you'll need to do $varname = apc_fetch('varname') after calling apc_bin_load*()
To Top