From 623595f0d6446ab29bfd40bf65fa3948ed8a77f9 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 11 Jan 2016 10:55:59 +0100 Subject: [PATCH] [ClassLoader] Use symfony/polyfill-apcu --- .travis.yml | 5 +++-- composer.json | 1 + src/Symfony/Component/ClassLoader/ApcClassLoader.php | 8 ++++---- src/Symfony/Component/ClassLoader/composer.json | 3 ++- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 25897fabe6..20edf72737 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,8 +38,9 @@ before_install: - echo session.gc_probability = 0 >> $INI_FILE - if [[ $TRAVIS_PHP_VERSION = 5.* ]]; then echo extension = mongo.so >> $INI_FILE; fi; - if [[ $TRAVIS_PHP_VERSION = 5.* ]]; then echo extension = memcache.so >> $INI_FILE; fi; - - if [[ $TRAVIS_PHP_VERSION = 5.* ]]; then (echo yes | pecl install -f apcu-4.0.10 && echo apc.enable_cli = 1 >> $INI_FILE) || echo "Let's continue without apcu extension"; fi; - - if [[ $TRAVIS_PHP_VERSION = 5.* ]]; then pecl install -f memcached-2.1.0 || echo "Let's continue without memcached extension"; fi; + - if [[ $TRAVIS_PHP_VERSION = 5.* ]]; then (echo yes | pecl install -f apcu-4.0.10 && echo apc.enable_cli = 1 >> $INI_FILE); fi; + - if [[ $TRAVIS_PHP_VERSION = 7.* ]]; then (echo yes | pecl install -f apcu-5.1.2 && echo apc.enable_cli = 1 >> $INI_FILE); fi; + - if [[ $TRAVIS_PHP_VERSION = 5.* ]]; then pecl install -f memcached-2.1.0; fi; - if [[ $TRAVIS_PHP_VERSION != hhvm ]]; then echo extension = ldap.so >> $INI_FILE; fi; - if [[ $TRAVIS_PHP_VERSION != hhvm ]]; then phpenv config-rm xdebug.ini; fi; - if [[ $TRAVIS_REPO_SLUG = symfony/symfony ]]; then cp .composer-auth.json ~/.composer/auth.json; fi; diff --git a/composer.json b/composer.json index d460e34439..0cd67a4c09 100644 --- a/composer.json +++ b/composer.json @@ -19,6 +19,7 @@ "php": ">=5.3.3", "doctrine/common": "~2.4", "paragonie/random_compat": "~1.0", + "symfony/polyfill-apcu": "~1.0,>=1.0.2", "twig/twig": "~1.23|~2.0", "psr/log": "~1.0" }, diff --git a/src/Symfony/Component/ClassLoader/ApcClassLoader.php b/src/Symfony/Component/ClassLoader/ApcClassLoader.php index 9170929a10..4f71ea173d 100644 --- a/src/Symfony/Component/ClassLoader/ApcClassLoader.php +++ b/src/Symfony/Component/ClassLoader/ApcClassLoader.php @@ -67,8 +67,8 @@ class ApcClassLoader */ public function __construct($prefix, $decorated) { - if (!extension_loaded('apc')) { - throw new \RuntimeException('Unable to use ApcClassLoader as APC is not enabled.'); + if (!function_exists('apcu_fetch')) { + throw new \RuntimeException('Unable to use ApcClassLoader as APC is not installed.'); } if (!method_exists($decorated, 'findFile')) { @@ -122,8 +122,8 @@ class ApcClassLoader */ public function findFile($class) { - if (false === $file = apc_fetch($this->prefix.$class)) { - apc_store($this->prefix.$class, $file = $this->decorated->findFile($class)); + if (false === $file = apcu_fetch($this->prefix.$class)) { + apcu_store($this->prefix.$class, $file = $this->decorated->findFile($class)); } return $file; diff --git a/src/Symfony/Component/ClassLoader/composer.json b/src/Symfony/Component/ClassLoader/composer.json index 1796ab0b51..86bb70a6d7 100644 --- a/src/Symfony/Component/ClassLoader/composer.json +++ b/src/Symfony/Component/ClassLoader/composer.json @@ -17,7 +17,8 @@ ], "minimum-stability": "dev", "require": { - "php": ">=5.3.3" + "php": ">=5.3.3", + "symfony/polyfill-apcu": "~1.0,>=1.0.2" }, "require-dev": { "symfony/finder": "~2.0,>=2.0.5"