smart-core / acceleratorcachebundle Goto Github PK
View Code? Open in Web Editor NEWProvide a command to clear PHP Accelerator cache from CLI
License: MIT License
Provide a command to clear PHP Accelerator cache from CLI
License: MIT License
Given this configuration:
accelerator_cache:
host: "%env(ACCELERATOR_CACHE_HOST)%"
web_dir: "%kernel.root_dir%/../web"
and this .env
file:
ACCELERATOR_CACHE_HOST=https://www.domain.tld
The command will not work because it will try to fetch the http://https://www.domain.tld/apc-*.php
URL. Actual problem lies here:
The moment a bundle configuration is processed, the $v
does not yet contain the environment variable value (i.e. https://www.domain.tld
), but rather a variable temporary name (e.g. env_dc3b1098b7dfc6db_ACCELERATOR_CACHE_HOST_93ccaa97cef7fc766f177ccffea2b95b
), thus always receiving the http://
prefix.
If you use this bundle with this combination don't work because SSL streams have been changed in PHP 5.6. You can read more in http://php.net/manual/en/migration56.openssl.php. In the bottom of this page you have the solution: disable verify peer.
<?php
$streamContext = stream_context_create([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false
]
]);
$contents = file_get_contents('https://url', false, $streamContext);
?>
If you like I can create a pull request adding this to CacheClearerService, but not just now because I don't have time
Curl error reading "http://domain/apc-f40b5cfbe8c113ceda8a95c5fcda3d5e.php": Could not resolve host: domain
the plugin don't write in the prod folder
host is readable and reachable, what is that ?
[RuntimeException]
Unable to read "https://website.com/apc-0c2b1755d3b4379133e84
565110c077d.php", does the host locally resolve?
file .php does not create itself in public folder
Upgrading to Symfony 3.4 throws an error when clearing the cache:
bin/console cache:accelerator:clear -vvv
In CacheClearerService.php line 29:
[Symfony\Component\Debug\Exception\ContextErrorException]
Notice: Array to string conversion
Exception trace:
SmartCore\Bundle\AcceleratorCacheBundle\CacheClearerService->__construct() at /var/www/survos/platform/var/cache/dev/ContainerIugi7nx/getAcceleratorCache_ClearerService.php:11
require() at /var/www/survos/platform/var/cache/dev/ContainerIugi7nx/Container.php:2218
ContainerIugi7nx->load() at /var/www/survos/platform/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:299
Symfony\Component\DependencyInjection\Container->get() at /var/www/survos/platform/vendor/smart-core/accelerator-cache-bundle/Command/AcceleratorCacheClearCommand.php:41
SmartCore\Bundle\AcceleratorCacheBundle\Command\AcceleratorCacheClearCommand->execute() at /var/www/survos/platform/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:276
Symfony\Component\Console\Command\Command->run() at /var/www/survos/platform/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:951
Symfony\Component\Console\Application->doRunCommand() at /var/www/survos/platform/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:93
Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() at /var/www/survos/platform/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:231
Symfony\Component\Console\Application->doRun() at /var/www/survos/platform/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:81
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /var/www/survos/platform/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:132
Symfony\Component\Console\Application->run() at /var/www/survos/platform/bin/console:27
cache:accelerator:clear [--opcode] [--user] [--cli] [--auth AUTH] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--]
Hi,
having problem with hanging capifony task. Apache is configured properly (can run the apc clear task via browser). Fails both with curl and fopen. Any ideas?
Some curl options accepts an array of strings for their values:
https://www.php.net/manual/en/function.curl-setopt.php
One such option is CURLOPT_RESOLVE
which I'm trying to use to override DNS resolution.
Current code limits those options to string as per:
Would there be a way to accept those parameter value types?
Sorry for the issue, I know it's boring when someone asks. Anyway, there are some features/fixes pending and the last relase is from January.
Anything that prevent a new release? May I help in this case?
Hi
I would like to know if it is possible to set multi-hosts. Indeed, I got two dev servers with two different host names.
It's possible to use AcceleratorCacheBundle in that way ?
Thanks.
Hi,
Edit : oups didn't see this pull request : #19
I ran into an issue while updating my project with composer.
Updating only sensio/distribution-bundle from v5.0.5 to v5.0.6.
The error :
[ErrorException]
Declaration of SmartCore\Bundle\AcceleratorCacheBundle\Composer\ScriptHandler::clearCache() should be compatible with Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache(Composer\Script\Event $event)
The hotfix I made : Replace "CommandEvent" by "Event" (in the method declaration and in the use part)
Thanks,
Getting exception with empty message:
$ ./bin/console cache:accelerator:clear -vv
[RuntimeException]
Exception trace:
() at /home/cdn/www/vendor/smart-core/accelerator-cache-bundle/Command/AcceleratorCacheClearCommand.php:46
SmartCore\Bundle\AcceleratorCacheBundle\Command\AcceleratorCacheClearCommand->execute() at /home/cdn/www/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:255
Symfony\Component\Console\Command\Command->run() at /home/cdn/www/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:846
Symfony\Component\Console\Application->doRunCommand() at /home/cdn/www/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:191
Symfony\Component\Console\Application->doRun() at /home/cdn/www/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:80
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /home/cdn/www/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:122
Symfony\Component\Console\Application->run() at /home/cdn/www/bin/console:29
Using:
I think that this commit:
has broken command script. There's a check if notexisting file is writable, but it's created afterwards and there's an error.
Since Symfony 3, a new directory structure has been proposed, which puts the console inside the bin\ folder.
This causes the SmartCore\Bundle\AcceleratorCacheBundle\Composer\ScriptHandler::clearCache script to crash with Could not open input file: app/console.
Since you use the DistributionBundle, it should not be an issue.
But this line is faulty: $appDir = $options['symfony-app-dir'];.
You rather need to look for "symfony-bin-dir" option and use it when available, as configured in composer.json:
"extra": {
"symfony-app-dir": "app",
"symfony-bin-dir": "bin"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.