summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2019-10-23 09:03:08 +0200
committerRemi Collet <remi@remirepo.net>2019-10-23 09:03:08 +0200
commit175e158863e621bc269e64cd739b4d8462354eab (patch)
treea74ac0e73ad3190f5dbdb9a99142c0ee3e5b2d35
parent8216eb1b5a4a80e804e56185d5c433443943a929 (diff)
FFI::load() doesn't work in conjunction with "opcache.preload_user". Use "ffi.preload" instead.
-rw-r--r--preload-foo.inc1
-rw-r--r--preload-zstd.inc2
-rw-r--r--preload.php3
-rw-r--r--zstd.php6
4 files changed, 6 insertions, 6 deletions
diff --git a/preload-foo.inc b/preload-foo.inc
index 31be7d6..af509e2 100644
--- a/preload-foo.inc
+++ b/preload-foo.inc
@@ -2,5 +2,6 @@
namespace Remi;
class Foo {
+ static private $single = NULL;
}
diff --git a/preload-zstd.inc b/preload-zstd.inc
index de8abd0..f56c833 100644
--- a/preload-zstd.inc
+++ b/preload-zstd.inc
@@ -19,10 +19,12 @@ class Zstd {
// Try if preloaded
try {
self::$ffi = \FFI::scope("_REMI_ZSTD_");
+ echo "Using FFI::scope OK\n";
} catch (\FFI\Exception $e) {
// Try direct load
if (PHP_SAPI === 'cli' || (int)ini_get("ffi.enable")) {
self::$ffi = \FFI::load(__DIR__ . '/preload-zstd.h');
+ echo "Using FFI::load OK\n";
} else {
throw $e;
}
diff --git a/preload.php b/preload.php
index 1af70d6..d442e15 100644
--- a/preload.php
+++ b/preload.php
@@ -1,7 +1,4 @@
<?php
-foreach (glob(__DIR__ . '/preload-*.h') as $f) {
- \FFI::load($f);
-}
foreach (glob(__DIR__ . '/preload-*.inc') as $f) {
opcache_compile_file($f);
}
diff --git a/zstd.php b/zstd.php
index 35c8876..7faebea 100644
--- a/zstd.php
+++ b/zstd.php
@@ -14,16 +14,16 @@ if (PHP_VERSION_ID < 70400 || !extension_loaded("ffi")) {
printf("PHP version %s\n", PHP_VERSION);
if (PHP_SAPI == "cli" && !class_exists("\\Remi\\Zstd")) {
- printf("Fallback on manual load\n\n");
+ printf("Fallback on manual load\n");
require_once __DIR__ . '/preload-zstd.inc';
} else {
- printf("Use preloaded class\n\n");
+ printf("Use preloaded class\n");
}
if (class_exists("\\Remi\\Zstd")) {
$t = microtime(true);
$ret = \Remi\Zstd::compress(PHP_BINARY, "testffi.zstd");
- printf("Src length = %d\n", $ret['in_len']);
+ printf("\nSrc length = %d\n", $ret['in_len']);
printf("ZSTD_compressBound = %d\n", $ret['max_len']);
printf("ZSTD_compress = %d\n", $ret['out_len']);