Commit Graph

52 Commits

Author SHA1 Message Date
Fabien Potencier
c0323bd24b Merge branch '4.1' into 4.2
* 4.1:
  fixed tests
  fixed CS
  fixed CS
  fixed CS
  fixed short array CS in comments
  fixed CS in ExpressionLanguage fixtures
  fixed CS in generated files
  fixed CS on generated container files
  fixed CS on Form PHP templates
  fixed CS on YAML fixtures
  fixed fixtures
  switched array() to []
2019-01-16 21:31:39 +01:00
Fabien Potencier
572864b223 Merge branch '3.4' into 4.1
* 3.4:
  fixed CS
  fixed short array CS in comments
  fixed CS in ExpressionLanguage fixtures
  fixed CS in generated files
  fixed CS on generated container files
  fixed CS on Form PHP templates
  fixed CS on YAML fixtures
  fixed fixtures
  switched array() to []
2019-01-16 19:21:11 +01:00
Fabien Potencier
33a001e460 switched array() to [] 2019-01-16 10:39:14 +01:00
Nicolas Grekas
302b8446a7 [Contracts][Cache] allow retrieving metadata of cached items 2018-11-24 10:35:08 +01:00
Vladimir Reznichenko
dc1b24a8eb SCA: use 'yield from' where it does make sense 2018-11-10 11:03:47 +01:00
Nicolas Grekas
8d277ce3e5 Merge branch '4.1'
* 4.1:
  [VarDumper] fix dump of closures created from callables
  [DI] fix dumping inlined services
  Add framework asset changes to upgrade 3.0 guide
  [Travis] Bump ext-mongodb to 1.5.2 on Travis
  [DI] dont track classes/interfaces used to compute autowiring error messages
  [DI] fix GraphvizDumper ignoring inline definitions
  bumped Symfony version to 4.1.8
  updated VERSION for 4.1.7
  updated CHANGELOG for 4.1.7
  bumped Symfony version to 3.4.19
  updated VERSION for 3.4.18
  updated CHANGELOG for 3.4.18
  bumped Symfony version to 2.8.48
  updated VERSION for 2.8.47
  update CONTRIBUTORS for 2.8.47
  updated CHANGELOG for 2.8.47
  Fix ini_get() for boolean values
2018-11-06 18:10:56 +01:00
Nicolas Grekas
097963fbaf Merge branch '3.4' into 4.1
* 3.4:
  [VarDumper] fix dump of closures created from callables
  [DI] fix dumping inlined services
  Add framework asset changes to upgrade 3.0 guide
  [Travis] Bump ext-mongodb to 1.5.2 on Travis
  [DI] dont track classes/interfaces used to compute autowiring error messages
  [DI] fix GraphvizDumper ignoring inline definitions
  bumped Symfony version to 3.4.19
  updated VERSION for 3.4.18
  updated CHANGELOG for 3.4.18
  bumped Symfony version to 2.8.48
  updated VERSION for 2.8.47
  update CONTRIBUTORS for 2.8.47
  updated CHANGELOG for 2.8.47
  Fix ini_get() for boolean values
2018-11-06 17:43:48 +01:00
François-Xavier de Guillebon
65b34cb53c
Fix ini_get() for boolean values 2018-10-31 14:11:30 +01:00
Nicolas Grekas
c6cf690b2f [Cache] add CacheInterface::delete() + improve CacheTrait 2018-10-06 16:52:09 +02:00
Nicolas Grekas
8cf3625b11 [Cache] add "setCallbackWrapper()" on adapters implementing CacheInterface for more flexibility 2018-09-24 20:03:00 +02:00
Nicolas Grekas
0a1220fd96 [Cache] leverage Contracts\Cache 2018-09-04 09:24:06 +02:00
Nicolas Grekas
bc5d208584 [Cache] make PhpMarshaller handle hard references 2018-08-14 16:20:41 +02:00
Nicolas Grekas
e81285249b Merge branch '4.1'
* 4.1:
  Fix Clidumper tests
  Enable the fixer enforcing fully-qualified calls for compiler-optimized functions
  Apply fixers
  Disable the native_constant_invocation fixer until it can be scoped
  Update the list of excluded files for the CS fixer
2018-07-26 10:59:12 +02:00
Nicolas Grekas
b9433001cb Merge branch '3.4' into 4.0
* 3.4:
  Fix Clidumper tests
  Enable the fixer enforcing fully-qualified calls for compiler-optimized functions
  Apply fixers
  Disable the native_constant_invocation fixer until it can be scoped
  Update the list of excluded files for the CS fixer
2018-07-26 10:51:09 +02:00
Nicolas Grekas
f5939a8336 Merge branch '2.8' into 3.4
* 2.8:
  Fix Clidumper tests
  Enable the fixer enforcing fully-qualified calls for compiler-optimized functions
  Apply fixers
  Disable the native_constant_invocation fixer until it can be scoped
  Update the list of excluded files for the CS fixer
2018-07-26 10:45:46 +02:00
Nicolas Grekas
9c328c4894 [Cache] Add MarshallerInterface allowing to change the serializer, providing a default one that automatically uses igbinary when available 2018-07-08 10:55:08 +02:00
Nicolas Grekas
866420e2eb [Cache] serialize objects using native arrays when possible 2018-06-18 10:20:36 +02:00
Nicolas Grekas
51381e530a [Cache] Unconditionally use PhpFilesAdapter for system pools 2018-06-11 09:57:54 +02:00
Fabien Potencier
7e3b7b0b50 feature #27009 [Cache] Add stampede protection via probabilistic early expiration (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Cache] Add stampede protection via probabilistic early expiration

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        |

This PR implements [probabilistic early expiration](https://en.wikipedia.org/wiki/Cache_stampede#Probabilistic_early_expiration) on top of `$cache->get($key, $callback);`

It adds a 3rd arg to `CacheInterface::get`:
> float $beta A float that controls the likelyness of triggering early expiration. 0 disables it, INF forces immediate expiration. The default is implementation dependend but should typically be 1.0, which should provide optimal stampede protection.

Commits
-------

13523ad985 [Cache] Add stampede protection via probabilistic early expiration
2018-06-11 09:05:59 +02:00
Nicolas Grekas
13523ad985 [Cache] Add stampede protection via probabilistic early expiration 2018-06-10 18:44:41 +02:00
Nicolas Grekas
1b2bd8f419 Merge branch '4.1'
* 4.1:
  [Cache][Security] Use Throwable where possible
  revert #27545
  Update Finder.php
  [FrameworkBundle] remove dead code in CachePoolClearerPass
  Fix security-core cross-dependencies, fixes #27507
  Pass previous exception to FatalErrorException
2018-06-08 11:40:00 +02:00
Nicolas Grekas
9786ec8e19 [Cache][Security] Use Throwable where possible 2018-06-08 11:29:49 +02:00
Nicolas Grekas
589ff697f4 [Cache] Add [Taggable]CacheInterface, the easiest way to use a cache 2018-05-18 14:27:36 +02:00
Nicolas Grekas
6d9d329deb Merge branch '3.4' into 4.0
* 3.4:
  Fix tests
  PropertyInfo\DoctrineExtractor - There is bug when indexBy is meta key
  Fix PercentType error rendering.
  [minor] SCA
  [Cache] Inline some hot function calls
2018-04-20 12:04:09 +02:00
Nicolas Grekas
52b4bfc042 [Cache] Inline some hot function calls 2018-04-20 10:22:20 +02:00
Nicolas Grekas
aaf2265203 Replace more docblocks by type-hints 2017-11-07 15:45:01 +01:00
Nicolas Grekas
d7547f2e95 Merge branch '3.4'
* 3.4:
  [3.4] Remove useless docblocks
  [3.3] More docblock fixes
  [2.7] More docblock fixes
  [TwigBridge] Fix BC break due required twig environment
  Random fixes
  Docblock fixes
  [DI] Fix cannot bind env var
  Fix some signatures in PHP-DSLs
  [HttpKernel] Enhance deprecation message
  bumped Symfony version to 3.4.0
  updated VERSION for 3.4.0-BETA3
  updated CHANGELOG for 3.4.0-BETA3
  [SecurityBundle] Fix the datacollector to properly support decision.object being null
2017-11-07 15:34:02 +01:00
Nicolas Grekas
629895c3ef Merge branch '3.3' into 3.4
* 3.3:
  [3.3] More docblock fixes
  [2.7] More docblock fixes
2017-11-07 15:20:24 +01:00
Nicolas Grekas
7b6cabad22 [3.3] More docblock fixes 2017-11-07 15:16:22 +01:00
Nicolas Grekas
5eab353117 Remove some visual debt by adding type hints on final methods/classes 2017-10-24 16:36:35 +02:00
Maxime Steinhausser
3640585bfd Merge branch '3.4'
* 3.4:
  use the parseFile() method of the YAML parser
  [Yaml] support parsing files
  Adding Definition::addError() and a compiler pass to throw errors as exceptions
  [DI] Add AutowireRequiredMethodsPass to fix bindings for `@required` methods
  [Cache] Add ResettableInterface to allow resetting any pool's local state
  [DI][DX] Throw exception on some ContainerBuilder methods used from extensions
  added missing @author tag for new class
  allow forms without translations and validator
  [VarDumper] Make `dump()` a little bit more easier to use
  [Form] Add ambiguous & exception debug:form tests
  Reset the authentication token between requests.
  [Serializer] Getter for extra attributes in ExtraAttributesException
  [DI] Dont use JSON_BIGINT_AS_STRING

# Conflicts:
#	src/Symfony/Component/Routing/composer.json
#	src/Symfony/Component/Translation/composer.json
#	src/Symfony/Component/Yaml/Inline.php
#	src/Symfony/Component/Yaml/Tests/ParserTest.php
#	src/Symfony/Component/Yaml/Yaml.php
2017-09-26 08:12:47 +02:00
Nicolas Grekas
14c91f2bc9 [Cache] Add ResettableInterface to allow resetting any pool's local state 2017-09-25 10:20:08 +02:00
Robin Chalas
0537e03e72 Merge branch '3.4'
* 3.4: (38 commits)
  Fix merge
  [Lock] Expose an expiringDate and isExpired method in Lock
  [VarDumper] fix DateCasterTest
  [config] Add ability to deprecate a node
  feature #22382 [config] Add abbitily to deprecate a node (Nyholm, fabpot, sanpii)
  Fix segfault in period caster
  Create an interface for TranslationReader and moved TranslationLoader to Translation component
  Always require symfony/polyfill-apcu to provide APCuIterator everywhere
  [Lock] Fix some tests that require pcntl_sigwaitinfo() function
  bumped Symfony version to 3.3.9
  updated VERSION for 3.3.8
  updated CHANGELOG for 3.3.8
  [DI] Fix tracking env var placeholders nested in object graphs
  bumped Symfony version to 3.3.8
  updated VERSION for 3.3.7
  updated CHANGELOG for 3.3.7
  Add period caster
  [DI] improve psr4-based service discovery with namespace option
  [DI] Fix tracking env vars when merging configs (bis)
  removed obsolete comment
  ...
2017-08-30 01:06:25 +02:00
Nicolas Grekas
e600cd8647 [Cache] Use zend.detect_unicode instead of zend.multibyte 2017-08-28 10:20:24 +02:00
Nicolas Grekas
1cab07ebee [Cache] Workaround zend.detect_unicode + zend.multibyte 2017-08-25 17:28:27 +02:00
Nek (Maxime Veber)
471b84c1a2 Remove HHVM support (second edition) 2017-07-03 10:26:05 +03:00
Nicolas Grekas
4ad0dbf584 Merge branch '3.2' into 3.3
* 3.2:
  Fix optional cache warmers are always instantiated whereas they should be lazy-loaded
  add some \ on PHP_VERSION_ID for 2.8
  [PropertyInfo][DoctrineBridge] The bigint Doctrine's type must be converted to string
2017-06-02 11:51:43 +02:00
Nicolas Grekas
fe4d885c4c Merge branch '2.8' into 3.2
* 2.8:
  Fix optional cache warmers are always instantiated whereas they should be lazy-loaded
  add some \ on PHP_VERSION_ID for 2.8
  [PropertyInfo][DoctrineBridge] The bigint Doctrine's type must be converted to string
2017-06-02 11:43:35 +02:00
Fabien Potencier
ad1f35fc72 removed HHVM support 2017-06-01 15:17:54 -07:00
Robin Chalas
21114f84e6 CS Fixes 2017-05-22 11:03:40 +02:00
Maxime Steinhausser
7091fb4df5 Remove PHP < 7.1.3 code 2017-05-22 08:50:05 +02:00
Nicolas Grekas
22bb403c20 Merge branch '3.2'
* 3.2:
  [DI] Autowiring and factories are incompatible with each others
  [DI] Don't use auto-registered services to populate type-candidates
  Lighten tests output by removing composer suggestions
  support nullable array or collection
  Complete the injection of the expression in all syntax errors
  CS: Remove invisible chars
  Disable resource tracking if the config component is missing
  [EventDispatcher] Remove unneded count()
  Fix tests expecting a valid date
  Avoid forcing to define the choices_as_values option when using choice_loader
  add expression text to SyntaxError
  [Console] Fix table cell styling
  [Console] Revised exception rendering
  Fix @param in PHPDoc
  [WebProfilerBundle] Normalize whitespace in exceptions passed in headers
  Disable color support detection for tests
  [Form] Improve the exceptions when trying to get the data in a PRE_SET_DATA listener and the data has not already been set
2017-04-04 09:47:41 +02:00
Jérôme Tamarelle
6ed9d0e4c1 Fix @param in PHPDoc
Errors reported by Sami API Doc generator on branch 3.2

ERROR: The "factory" @param tag variable name is wrong (should be "objectLoader") on "Symfony\Bridge\Doctrine\Form\ChoiceList\DoctrineChoiceLoader::__construct" in src/Symfony/Bridge/Doctrine/Form/ChoiceList/DoctrineChoiceLoader.php:68
ERROR: The "objectLoader" @param tag variable name is wrong (should be "factory") on "Symfony\Bridge\Doctrine\Form\ChoiceList\DoctrineChoiceLoader::__construct" in src/Symfony/Bridge/Doctrine/Form/ChoiceList/DoctrineChoiceLoader.php:68
ERROR: "7" @param tags are expected but only "6" found on "Symfony\Bundle\WebProfilerBundle\Controller\ProfilerController::__construct" in src/Symfony/Bundle/WebProfilerBundle/Controller/ProfilerController.php:50
ERROR: "3" @param tags are expected but only "2" found on "Symfony\Component\Asset\PathPackage::__construct" in src/Symfony/Component/Asset/PathPackage.php:35
ERROR: "2" @param tags are expected but only "1" found on "Symfony\Component\Cache\Adapter\PhpArrayAdapter::create" in src/Symfony/Component/Cache/Adapter/PhpArrayAdapter.php:64
ERROR: "3" @param tags are expected but only "1" found on "Symfony\Component\Cache\Adapter\RedisAdapter::__construct" in src/Symfony/Component/Cache/Adapter/RedisAdapter.php:39
ERROR: The "format" @param tag variable name is wrong (should be "fileLinkFormat") on "Symfony\Component\Debug\ExceptionHandler::setFileLinkFormat" in src/Symfony/Component/Debug/ExceptionHandler.php:90
ERROR: "2" @param tags are expected but only "3" found on "Symfony\Component\DependencyInjection\Compiler\Compiler::addPass" in src/Symfony/Component/DependencyInjection/Compiler/Compiler.php:73
ERROR: "2" @param tags are expected but only "3" found on "Symfony\Component\DependencyInjection\Compiler\PassConfig::addPass" in src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php:97
ERROR: "2" @param tags are expected but only "3" found on "Symfony\Component\DependencyInjection\ContainerBuilder::addCompilerPass" in src/Symfony/Component/DependencyInjection/ContainerBuilder.php:311
ERROR: "2" @param tags are expected but only "3" found on "Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\DumperInterface::getProxyFactoryCode" in src/Symfony/Component/DependencyInjection/LazyProxy/PhpDumper/DumperInterface.php:41
ERROR: "0" @param tags are expected but only "1" found on "Symfony\Component\HttpFoundation\Request::isMethodSafe" in src/Symfony/Component/HttpFoundation/Request.php:1458
ERROR: "5" @param tags are expected but only "6" found on "Symfony\Component\Serializer\Normalizer\AbstractNormalizer::instantiateObject" in src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php:291
2017-03-28 23:38:24 +02:00
Arthur de Moulins
865a6af153 cached files rely on umask 2017-03-08 13:16:26 +01:00
Fabien Potencier
6ccdcdc330 Merge branch '3.2'
* 3.2:
  Remove 3.1 from PR template
  fixed test name
  [Cache] Fix class exists checks in PhpArrayAdapter
  Casting TableCell value to string.
  [FrameworkBundle] fixed custom domain for translations in php templates
  [Form] Fixed DateType format option
  [Config] Fix checking cache for non existing meta file
2017-02-06 13:04:42 +01:00
Nicolas Grekas
44e5989850 [Cache] Fix class exists checks in PhpArrayAdapter 2017-02-04 09:30:23 +01:00
Nicolas Grekas
99ae9d6a35 [Cache] Move adapter implementations to traits 2017-01-23 14:57:50 +01:00
Nicolas Grekas
c60009eae8 [FrameworkBundle] Fix class_exists() checks in PhpArrayAdapter-related cache warmers 2017-01-12 12:00:26 +01:00
Nicolas Grekas
a9dfcd8819 [Cache] Remove silenced warning tiggered by PhpArrayAdapter 2017-01-05 18:36:34 +01:00
Javier Eguiluz
50a8c1f9d3 Add "more entropy" to every uniqid() call 2016-10-03 16:10:01 +02:00