Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
ApcuAdapter example
public
static
function
createCache
(
string
$namespace
, int
$defaultLifetime
, string
$version
, LoggerInterface
$logger
= null
)
: AdapterInterface
{
if
(
!
class_exists
(
ApcuAdapter::
class
)
)
{
throw
new
\
LogicException
(
sprintf
(
'The Symfony Cache component must be installed to use "%s()".', __METHOD__
)
)
;
}
if
(
!ApcuAdapter::
isSupported
(
)
)
{
return
new
NullAdapter
(
)
;
}
$apcu
=
new
ApcuAdapter
(
$namespace
,
$defaultLifetime
/ 5,
$version
)
;
if
(
'cli' === \PHP_SAPI && !
filter_var
(
\
ini_get
(
'apc.enable_cli'
)
, \FILTER_VALIDATE_BOOL
)
)
{
$apcu
->
setLogger
(
new
NullLogger
(
)
)
;
}
elseif
(
null !==
$logger
)
{
$apcu
->
setLogger
(
$logger
)
;
}
return
$apcu
;
}
}
$this
->
markTestSkipped
(
'APCu extension is required.'
)
;
}
if
(
'cli' === \PHP_SAPI && !
filter_var
(
\
ini_get
(
'apc.enable_cli'
)
, \FILTER_VALIDATE_BOOL
)
)
{
if
(
'testWithCliSapi' !==
$this
->
getName
(
)
)
{
$this
->
markTestSkipped
(
'apc.enable_cli=1 is required.'
)
;
}
}
if
(
'\\' === \DIRECTORY_SEPARATOR
)
{
$this
->
markTestSkipped
(
'Fails transiently on Windows.'
)
;
}
return
new
ApcuAdapter
(
str_replace
(
'\\', '.', __CLASS__
)
,
$defaultLifetime
)
;
}
public
function
testUnserializable
(
)
{
$pool
=
$this
->
createCachePool
(
)
;
$item
=
$pool
->
getItem
(
'foo'
)
;
$item
->
set
(
function
D
)
{
}
)
;
$this
->
assertFalse
(
$pool
->
save
(
$item
)
)
;
$opcache
->
setLogger
(
$logger
)
;
}
if
(
!self::
$apcuSupported
??= ApcuAdapter::
isSupported
(
)
)
{
return
$opcache
;
}
if
(
\
in_array
(
\PHP_SAPI,
[
'cli', 'phpdbg'
]
, true
)
&& !
filter_var
(
\
ini_get
(
'apc.enable_cli'
)
, \FILTER_VALIDATE_BOOL
)
)
{
return
$opcache
;
}
$apcu
=
new
ApcuAdapter
(
$namespace
,
intdiv
(
$defaultLifetime
, 5
)
,
$version
)
;
if
(
null !==
$logger
)
{
$apcu
->
setLogger
(
$logger
)
;
}
return
new
ChainAdapter
(
[
$apcu
,
$opcache
]
)
;
}
public
static
function
createConnection
(
#[\SensitiveParameter] string $dsn, array $options = []): mixed
{
if
(
str_starts_with
(
$dsn
, 'redis:'
)
||
str_starts_with
(
$dsn
, 'rediss:'
)
)
{
return
RedisAdapter::
createConnection
(
$dsn
,
$options
)
;
}