forked from symfony/symfony
-
-
Notifications
You must be signed in to change notification settings - Fork 0
[Serializer] Use $context['cache_key'] to enhance caching #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
272925c
to
8560c13
Compare
dunglas
added a commit
that referenced
this pull request
Jan 12, 2016
[Serializer] Use $context['cache_key'] to enhance caching
Thanks! |
dunglas
pushed a commit
that referenced
this pull request
Jan 17, 2016
…ble data (dunglas, nicolas-grekas) This PR was merged into the 2.8 branch. Discussion ---------- [Serializer] Allow context to contain not serializable data | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | n/a | License | MIT | Doc PR | n/a Allow the context to contain not serializable data even for the `ObjectNormalizer` (BC break fix). Commits ------- 996f69d Merge pull request #2 from nicolas-grekas/ser-cache 8560c13 [Serializer] Use $context['cache_key'] to enhance caching c1740fc [Serializer] ObjectNormalizer: context can contain not serializable data
dunglas
pushed a commit
that referenced
this pull request
Jan 23, 2017
…er in autowired classes (brainexe) This PR was squashed before being merged into the 3.1 branch (closes symfony#21372). Discussion ---------- [DependencyInjection] Fixed variadic method parameter in autowired classes | Q | A | ------------- | --- | Branch? | 3.1 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | -- | License | MIT Autowiring classes containing methods with variadic method parameter throws a ReflectionException in compile process: ``` PHP Fatal error: Uncaught ReflectionException: Internal error: Failed to retrieve the default value in /.../vendor/symfony/dependency-injection/Compiler/AutowirePass.php:437 Stack trace: #0 /.../vendor/symfony/dependency-injection/Compiler/AutowirePass.php(437): ReflectionParameter->getDefaultValue() #1 /.../vendor/symfony/dependency-injection/Compiler/AutowirePass.php(80): Symfony\Component\DependencyInjection\Compiler\AutowirePass::getResourceMetadataForMethod(Object(ReflectionMethod)) #2 /.../vendor/symfony/dependency-injection/Compiler/AutowirePass.php(105): Symfony\Component\DependencyInjection\Compiler\AutowirePass::createResourceForClass(Object(ReflectionClass)) #3 /.../vendor/symfony/dependency-injection/Compiler/AutowirePass.php(48): Symfony\Component\DependencyInjection\Compiler\AutowirePass->completeDefinition('__controller.Sw...', Object(Symfony\Component\DependencyInjection\Definition), Array) #4 /.../vendor/symfony/dependency-injection/Compiler/Compiler in /.../vendor/symfony/dependency-injection/Compiler/AutowirePass.php on line 437 ``` **Example:** ``` <?php class FooVariadic { public function bar(...$arguments) { } } $method = new ReflectionMethod(FooVariadic::class, 'bar'); $parameter = $method->getParameters()[0]; $parameter->getDefaultValue(); // -> ReflectionException: Internal error: Failed to retrieve the default value in ... ``` Commits ------- a7f63de [DependencyInjection] Fixed variadic method parameter in autowired classes
dunglas
pushed a commit
that referenced
this pull request
Mar 11, 2018
…Handler (hjanuschka) This PR was submitted for the master branch but it was squashed and merged into the 4.0 branch instead (closes symfony#26403). Discussion ---------- fix the handling of timestamp in the MongoDBSessionHandler | Q | A | ------------- | --- | Branch? | master | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | License | MIT in the process of upgrading from 3.4 to 4.0 we stumbled upon a issue with mongo session handler. ``` [05-Mar-2018 11:12:57 Europe/Vienna] PHP Fatal error: Uncaught Error: Call to undefined method Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandler::createDateTime() in /opt/APP/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php:144 Stack trace: #0 [internal function]: Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandler->updateTimestamp('96d983b59f8aef8...', 'user_obj|O:9:"k...') #1 [internal function]: session_write_close() #2 {main} thrown in /opt/APP/vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php on line 144 ``` this PR re-add's the method, that somehow got removed in 4.0 branch, whereas the interface forces to have the implemantation. Commits ------- 97d9ea8 fix the handling of timestamp in the MongoDBSessionHandler
dunglas
pushed a commit
that referenced
this pull request
Mar 20, 2018
…stamp in the MemcachedSessionHandler (Alessandro Loffredo) This PR was merged into the 3.4 branch. Discussion ---------- [Fix][3.4][HttpFoundation] Fix the updating of timestamp in the MemcachedSessionHandler | Q | A | ------------- | --- | Branch? | 3.4 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | License | MIT Conditions: Symfony 3.4, PHP7 and sessions handled over memcache. Apparently `memcached::touch()` returns `false` on a subsequent call with the same parameters. Since `updateTimestamp` is used in `AbstractSessionHandler::write()` ``` public function write($sessionId, $data) { if (\PHP_VERSION_ID < 70000 && $this->prefetchData) { $readData = $this->prefetchData; $this->prefetchData = null; if ($readData === $data) { return $this->updateTimestamp($sessionId, $data); } } ... ``` the result is that `write()` will return `false` on **any subsequent request within the same second** causing the following error: ``` HP Fatal error: Uncaught Symfony\Component\Debug\Exception\ContextErrorException: Warning: session_write_close(): Failed to write session data (user). Please verify that the current setting of session.save_path is correct (/var/lib/php/sessions) in Unknown:0 Stack trace: #0 [internal function]: Symfony\Component\Debug\ErrorHandler->handleError(2, 'session_write_c...', 'Unknown', 0, NULL) #1 [internal function]: session_write_close() #2 {main} thrown in Unknown on line 0 ``` Can be reproduced on `symfony/skeleton:3.4` adding the following code to `public/index.php` and performing two consecutive requests: ``` $session = $kernel->getContainer()->get('session'); $session->set("foo", "bar"); ``` Commits ------- d007469 fix the updating of timestamp in the MemcachedSessionHandler
dunglas
pushed a commit
that referenced
this pull request
Sep 11, 2018
This PR was merged into the 4.2-dev branch. Discussion ---------- Mark ExceptionInterfaces throwable #2 | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | yes | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | - This has been reverted in beta of 4.1 because of lack of support in prophecy, which has been fixed since then (incl. release). Can be merged again. References: symfony#26702 symfony#27420 symfony#27419 phpspec/prophecy#412 ping @dunglas @ciaranmcnulty @dkarlovi @Wirone @teohhanhui @stof @nicolas-grekas @ondrejmirtes Commits ------- 17c3675 Mark ExceptionInterfaces throwable
dunglas
pushed a commit
that referenced
this pull request
Oct 12, 2018
This PR was merged into the 3.4 branch. Discussion ---------- Correct PHPDoc type for float ttl | Q | A | ------------- | --- | Branch? | 3.4 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | N/A | License | MIT | Doc PR | N/A It can be null as the Lock instance accepts it. It will fix that kind of PHPStan issue: ``` src/AppBundle/Command/AbstractCommand.php:45:Parameter #2 $ttl of method Symfony\Component\Lock\Factory::createLock() expects float, null given. ``` Commits ------- b662e7e Correct PHPDoc type for float ttl
dunglas
pushed a commit
that referenced
this pull request
Nov 15, 2018
…s not exist (neeckeloo) This PR was merged into the 4.2-dev branch. Discussion ---------- [Messenger] Improved message when handler class does not exist | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? |no | Tests pass? | yes | Fixed tickets | | License | MIT | Doc PR | **Problem:** When defining a non existing messenger handler class in the `services.yml` config file, we encounter this confusing error message: ``` services: App\Handler\NonExistentHandler: tags: [messenger.message_handler] ``` ``` PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Argument 1 passed to Symfony\Component\Messenger\DependencyInjection\MessengerPass::guessHandledClasses() must be an instance of ReflectionClass, null given, called in /app/vendor/symfony/messenger/DependencyInjection/MessengerPass.php on line 93 in /app/vendor/symfony/messenger/DependencyInjection/MessengerPass.php:189 Stack trace: #0 /app/vendor/symfony/messenger/DependencyInjection/MessengerPass.php(93): Symfony\Component\Messenger\DependencyInjection\MessengerPass->guessHandledClasses(NULL, 'App\\Application...') #1 /app/vendor/symfony/messenger/DependencyInjection/MessengerPass.php(74): Symfony\Component\Messenger\DependencyInjection\MessengerPass->registerHandlers(Object(Symfony\Component\DependencyInjection\ContainerBuilder), Array) #2 /app/vendor/symfony/dependency-injection/Compiler/Compiler.php(95): Symfony\Component\Messenger\DependencyInjection\MessengerPass->process(Object(Symfony\Component\DependencyInjection\ContainerBuilder)) #3 / in /app/vendor/symfony/messenger/DependencyInjection/MessengerPass.php on line 189 ``` **Proposal:** We can throw a more relevant exception (RuntimeException) in this case to help the developer to have a better understanding of the issue. ```Invalid service "App\Handler\NonExistentHandler": class "App\Handler\NonExistentHandler" does not exist.``` Commits ------- 6ab9274 Improve error message when defining messenger handler class that does not exists
dunglas
pushed a commit
that referenced
this pull request
May 10, 2019
…logs (fabpot) This PR was merged into the 4.3-dev branch. Discussion ---------- [Messenger] Add missing information in messenger logs | Q | A | ------------- | --- | Branch? | master | Bug fix? | yes-ish | New feature? | yes-ish | BC breaks? | no | Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tests pass? | yes <!-- please add some, will be required by reviewers --> | Fixed tickets | n/a | License | MIT | Doc PR | n/a When using `messenger:consume`, I get the following logs: ``` 2019-03-25T11:39:05+01:00 [info] Received message "Symfony\Component\Mailer\EnvelopedMessage" 2019-03-25T11:39:05+01:00 [warning] An exception occurred while handling message "Symfony\Component\Mailer\EnvelopedMessage" 2019-03-25T11:39:05+01:00 [info] Retrying Symfony\Component\Mailer\EnvelopedMessage - retry #1. 2019-03-25T11:39:05+01:00 [info] Sending message "Symfony\Component\Mailer\EnvelopedMessage" with "Symfony\Component\Messenger\Transport\AmqpExt\AmqpTransport" 2019-03-25T11:39:06+01:00 [info] Received message "Symfony\Component\Mailer\EnvelopedMessage" 2019-03-25T11:39:06+01:00 [warning] An exception occurred while handling message "Symfony\Component\Mailer\EnvelopedMessage" 2019-03-25T11:39:06+01:00 [info] Retrying Symfony\Component\Mailer\EnvelopedMessage - retry #2. 2019-03-25T11:39:06+01:00 [info] Sending message "Symfony\Component\Mailer\EnvelopedMessage" with "Symfony\Component\Messenger\Transport\AmqpExt\AmqpTransport" 2019-03-25T11:39:09+01:00 [info] Received message "Symfony\Component\Mailer\EnvelopedMessage" 2019-03-25T11:39:09+01:00 [warning] An exception occurred while handling message "Symfony\Component\Mailer\EnvelopedMessage" 2019-03-25T11:39:09+01:00 [info] Retrying Symfony\Component\Mailer\EnvelopedMessage - retry #3. 2019-03-25T11:39:09+01:00 [info] Sending message "Symfony\Component\Mailer\EnvelopedMessage" with "Symfony\Component\Messenger\Transport\AmqpExt\AmqpTransport" ``` So, an. error occurred, but I have no idea what's going on. The exception is in the context, but the context is not displayed by default. So, this PR fixes it. Commits ------- 20664ca [Messenger] added missing information in messenger logs
dunglas
pushed a commit
that referenced
this pull request
May 10, 2019
… is empty (yceruto) This PR was merged into the 4.2 branch. Discussion ---------- [HttpKernel] Fix get session when the request stack is empty | Q | A | ------------- | --- | Branch? | 4.2 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT This bug happen behind an exception on a kernel response event, when one collector (e.g. `RequestDataCollector`) is trying to get the request session and the request stack is currently empty. **Reproducer** https://github.com/yceruto/get-session-bug (`GET /`) See logs on terminal: ```bash Apr 15 20:29:03 |ERROR| PHP 2019-04-15T20:29:03-04:00 Call to a member function isSecure() on null Apr 15 20:29:03 |ERROR| PHP PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Call to a member function isSecure() on null in /home/yceruto/demos/getsession/vendor/symfony/http-kernel/EventListener/SessionListener.php:43 Apr 15 20:29:03 |DEBUG| PHP Stack trace: Apr 15 20:29:03 |DEBUG| PHP #0 /home/yceruto/demos/getsession/vendor/symfony/http-kernel/EventListener/AbstractSessionListener.php(59): Symfony\Component\HttpKernel\EventListener\SessionListener->getSession() Apr 15 20:29:03 |DEBUG| PHP #1 /home/yceruto/demos/getsession/vendor/symfony/http-foundation/Request.php(707): Symfony\Component\HttpKernel\EventListener\AbstractSessionListener->Symfony\Component\HttpKernel\EventListener\{closure}() Apr 15 20:29:03 |DEBUG| PHP #2 /home/yceruto/demos/getsession/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php(65): Symfony\Component\HttpFoundation\Request->getSession() Apr 15 20:29:03 |DEBUG| PHP #3 /home/yceruto/demos/getsession/vendor/symfony/http-kernel/Profiler/Profiler.php(167): Symfony\Component\HttpKernel\DataCollector\RequestDataCollector->collect(Object(Symfony\Component\HttpFoundation\Request), Object(Symfony\Component\HttpFoundation\Respo in /home/yceruto/demos/getsession/vendor/symfony/http-kernel/EventListener/SessionListener.php on line 43 ``` Friendly ping @nicolas-grekas as author of the previous PR symfony#28244 Commits ------- d62ca37 Fix get session when the request stack is empty
dunglas
pushed a commit
that referenced
this pull request
Oct 3, 2019
…dmaicher) This PR was merged into the 4.4 branch. Discussion ---------- [FrameworkBundle] conflict with VarDumper < 4.4 | Q | A | ------------- | --- | Branch? | 4.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | - | License | MIT | Doc PR | - While trying FrameworkBundle 4.4.x-dev I noticed that I was still using VarDumper 4.3 which leads to this error: ``` > app/console cache:clear Fatal error: Uncaught Symfony\Component\ErrorHandler\Exception\ClassNotFoundException: Attempted to load class "ContextualizedDumper" from namespace "Symfony\Component\VarDumper\Dumper". Did you forget a "use" statement for another namespace? in /var/www/x/symfony/app/cache/dev/ContainerB7mbdCh/getDebug_DumpListenerService.php:13 Stack trace: #0 /var/www/x/symfony/app/cache/dev/ContainerB7mbdCh/appAppKernelDevDebugContainer.php(1357): require() #1 /var/www/x/symfony/app/cache/dev/ContainerB7mbdCh/appAppKernelDevDebugContainer.php(2282): ContainerB7mbdCh\appAppKernelDevDebugContainer->load('getDebug_DumpLi...') #2 /var/www/x/symfony/vendor/symfony/event-dispatcher/EventDispatcher.php(275): ContainerB7mbdCh\appAppKernelDevDebugContainer->ContainerB7mbdCh\{clo 10000 sure}() #3 /var/www/x/symfony/vendor/symfony/event-dispatcher/EventDispatcher.php(90): Symfony\Component\EventDispatcher\EventDispatcher->sortListeners('console.command') #4 /var/www/x in /var/www/x/symfony/app/cache/dev/ContainerB7mbdCh/getDebug_DumpListenerService.php on line 13 PHP Fatal error: Uncaught Symfony\Component\ErrorHandler\Exception\ClassNotFoundException: Attempted to load class "ContextualizedDumper" from namespace "Symfony\Component\VarDumper\Dumper". Did you forget a "use" statement for another namespace? in /var/www/x/symfony/app/cache/dev/ContainerB7mbdCh/getDebug_DumpListenerService.php:13 Stack trace: #0 /var/www/x/symfony/app/cache/dev/ContainerB7mbdCh/appAppKernelDevDebugContainer.php(1357): require() #1 /var/www/x/symfony/app/cache/dev/ContainerB7mbdCh/appAppKernelDevDebugContainer.php(2282): ContainerB7mbdCh\appAppKernelDevDebugContainer->load('getDebug_DumpLi...') #2 /var/www/x/symfony/vendor/symfony/event-dispatcher/EventDispatcher.php(275): ContainerB7mbdCh\appAppKernelDevDebugContainer->ContainerB7mbdCh\{closure}() #3 /var/www/x/symfony/vendor/symfony/event-dispatcher/EventDispatcher.php(90): Symfony\Component\EventDispatcher\EventDispatcher->sortListeners('console.command') #4 /var/www/x in /var/www/x/symfony/app/cache/dev/ContainerB7mbdCh/getDebug_DumpListenerService.php on line 13 Script app/console cache:clear handling the post-update-cmd event returned with error code 255 ``` So we need to use `symfony/var-dumper >= 4.4` Commits ------- 9b512c6 [FrameworkBundle] conflict with VarDumper < 4.4
dunglas
pushed a commit
that referenced
this pull request
Nov 23, 2019
This PR was squashed before being merged into the 3.4 branch (closes symfony#34422). Discussion ---------- Update HttpKernel.php phpstan-symfony (0.11.6) level 5 Parameter #2 $values of method Symfony\Component\HttpFoundation\HeaderBag::set() expects array|string, int given. | Q | A | ------------- | --- | Branch? | 3.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | Fix #... <!-- prefix each issue number with "Fix #", if any --> | License | MIT | Doc PR | Commits ------- 7b7f966 Update HttpKernel.php
dunglas
pushed a commit
that referenced
this pull request
Oct 27, 2020
…tack() (dunglas) This PR was merged into the 5.1 branch. Discussion ---------- [DI] Fix call to sprintf in ServicesConfigurator::stack() | Q | A | ------------- | --- | Branch? | 5.1 | Bug fix? | yes | New feature? | no <!-- please update src/**/CHANGELOG.md files --> | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tickets | n/a | License | MIT | Doc PR | n/a This PR fixes a faulty call to `sprintf()` and prevents the following error: ``` Warning: sprintf(): Too few arguments in /Users/dunglas/workspace/activity-pub/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php on line 154 Fatal error: Uncaught Error: Wrong parameters for Symfony\Component\DependencyInjection\Exception\InvalidArgumentException([string $message [, long $code [, Throwable $previous = NULL]]]) in /Users/dunglas/workspace/activity-pub/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php:154 Stack trace: #0 /Users/dunglas/workspace/activity-pub/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php(154): Exception->__construct('', 1, 'api_platform.js...') #1 /Users/dunglas/workspace/activity-pub/src/Bundle/Resources/config/services.php(12): Symfony\Component\DependencyInjection\Loader\Configurator\ServicesConfigurator->stack('api_platform.js...', Array) #2 /Users/dunglas/workspace/activity-pub/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php(50): Symfony\Component\DependencyInjection\Loader\ProtectedPhpFileLoader::Symfony\Component\DependencyInjection\Loader\Configurator\{closure}(Object(Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurat in /Users/dunglas/workspace/activity-pub/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php on line 154 ``` Commits ------- 11da9d3 [DI] Fix call to sprintf in ServicesConfigurator::stack()
dunglas
pushed a commit
that referenced
this pull request
Mar 24, 2021
This PR was merged into the 5.3-dev branch. Discussion ---------- [Security] Added debug:firewall command | Q | A | ------------- | --- | Branch? | 5.x | Bug fix? | no | New feature? | yes | Deprecations? | no | Tickets | Fix symfony#39321 | License | MIT | Doc PR | symfony/symfony-docs#14982 | Tags | #SymfonyHackday ### Subtasks - [x] Add list view (for use without arguments) - [x] Add more information to list view - [x] Add detail view (for use with `firewall` argument) - [x] Add more information to detail view table - [x] Add authenticators list - [x] Add event listeners & events (copy from `debug:event-listener`) - [x] Add `--include-listeners` option (default: false) - [x] Add helptext - [x] Add documentation ### Moved outside of current scope - Add allowed badges ### Usage (and example output) for a list `bin/console debug:firewall` ``` Firewalls ========= The following firewalls are defined: -------- Name -------- dev public main -------- // To view details of a specific firewall, re-run this command with a firewall name. (e.g. debug:firewall // main) ``` ### Usage (and example output) for details `bin/console debug:firewall main` ``` Firewall "main" =============== ----------------------- --------------------------------------------------- Option Value ----------------------- --------------------------------------------------- Name main Context main Lazy Yes Stateless No User Checker security.user_checker Provider security.user.provider.concrete.app_user_provider Entry Point App\Security\LoginFormAuthenticator Access Denied URL Access Denied Handler ----------------------- --------------------------------------------------- User switching -------------- ----------- --------------------------------------------------- Option Value ----------- --------------------------------------------------- Parameter test Provider security.user.provider.concrete.app_user_provider User Role ROLE_SWITCH_POSSIBLE ----------- --------------------------------------------------- Event listeners for firewall "main" =================================== "Symfony\Component\Security\Http\Event\LoginSuccessEvent" event --------------------------------------------------------------- ------- -------------------------------------------------------------------------------------------- ---------- Order Callable Priority ------- -------------------------------------------------------------------------------------------- ---------- #1 Symfony\Component\Security\Http\EventListener\UserCheckerListener::postCheckCredentials() 256 #2 Symfony\Component\Security\Http\EventListener\SessionStrategyListener::onSuccessfulLogin() 0 #3 Symfony\Component\Security\Http\EventListener\RememberMeListener::onSuccessfulLogin() 0 #4 App\Security\UpdateLastLogin::__invoke() 0 #5 Symfony\Component\Security\Http\EventListener\PasswordMigratingListener::onLoginSuccess() 0 ------- -------------------------------------------------------------------------------------------- ---------- "Symfony\Component\Security\Http\Event\LogoutEvent" event --------------------------------------------------------- ------- ------------------------------------------------------------------------------------------- ---------- Order Callable Priority ------- ------------------------------------------------------------------------------------------- ---------- #1 Symfony\Component\Security\Http\EventListener\DefaultLogoutListener::onLogout() 64 #2 Symfony\Component\Security\Http\EventListener\SessionLogoutListener::onLogout() 0 #3 Symfony\Component\Security\Http\EventListener\RememberMeLogoutListener::onLogout() 0 #4 Symfony\Component\Security\Http\EventListener\CsrfTokenClearingLogoutListener::onLogout() 0 ------- ------------------------------------------------------------------------------------------- ---------- "Symfony\Component\Security\Http\Event\CheckPassportEvent" event ---------------------------------------------------------------- ------- ------------------------------------------------------------------------------------------ ---------- Order Callable Priority ------- ------------------------------------------------------------------------------------------ ---------- #1 Symfony\Component\Security\Http\EventListener\LoginThrottlingListener::checkPassport() 2080 #2 Symfony\Component\Security\Http\EventListener\UserProviderListener::checkPassport() 2048 #3 Symfony\Component\Security\Http\EventListener\UserProviderListener::checkPassport() 1024 #4 Symfony\Component\Security\Http\EventListener\CsrfProtectionListener::checkPassport() 512 #5 Symfony\Component\Security\Http\EventListener\UserCheckerListener::preCheckCredentials() 256 symfony#6 App\Security\DisallowBannedUsers::__invoke() 0 symfony#7 Symfony\Component\Security\Http\EventListener\CheckCredentialsListener::checkPassport() 0 ------- ------------------------------------------------------------------------------------------ ---------- "Symfony\Component\Security\Http\Event\LoginFailureEvent" event --------------------------------------------------------------- ------- ----------------------------------------------------------------------------------- ---------- Order Callable Priority ------- ----------------------------------------------------------------------------------- ---------- #1 Symfony\Component\Security\Http\EventListener\RememberMeListener::onFailedLogin() 0 ------- ----------------------------------------------------------------------------------- ---------- Authenticators for firewall "main" ================================== // @todo: List authenticator information ``` Commits ------- a9dea1d [Security] Added debug:firewall command
dunglas
pushed a commit
that referenced
this pull request
Apr 22, 2021
…e (Plopix) This PR was merged into the 4.4 branch. Discussion ---------- RequestMatcher issue when `_controller` is a closure | Q | A | ------------- | --- | Branch? | 4.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | License | MIT ## Description If the `matches` method of `RequestMatcher` is used on an attribute which is a closure it crashes. ## How did we get it On a project that is using FOS HTTP Cache, we have this configuration ```yaml fos_http_cache: cache_control: rules: - match: attributes: { _controller: ^App\\Controller\\.*::.* } headers: overwrite: true cache_control: { public: true, private: false, must_revalidate: true, s_maxage: 3600 } ``` Everything works fine unless you are reaching a controller that is a closure. You get a ```TypeError: preg_match(): Argument #2 ($subject) must be of type string, Closure given``` which is to me logical. ## Proposed solution Just testing the type of attribute value and return false before crashing `preg_match` This PR adds a quick unit test to enforce this. Commits ------- 6649123 Fix issue with RequestMatcher when attribute is a closure
dunglas
pushed a commit
that referenced
this pull request
Jan 11, 2022
DOMElement::setAttribute(): Passing null to parameter #2 ($value) of type string is deprecated This happens when a tag value is `null` on PHP 8.1.
dunglas
pushed a commit
that referenced
this pull request
Jan 11, 2022
…tring (ruudk) This PR was merged into the 4.4 branch. Discussion ---------- [DependencyInjection] Cast tag attribute value to string | Q | A | ------------- | --- | Branch? | 4.4 | Bug fix? | yes | New feature? |no | Deprecations? |no | Tickets | | License | MIT | Doc PR | ``` DOMElement::setAttribute(): Passing null to parameter #2 ($value) of type string is deprecated ``` This happens when a tag value is `null` on PHP 8.1. Commits ------- 8fe5fce [DependencyInjection] Cast tag value to string
dunglas
pushed a commit
that referenced
this pull request
Jan 11, 2022
…tations (sormes) This PR was squashed before being merged into the 5.4 branch. Discussion ---------- [Validator] Error using CssColor with doctrine annotations | Q | A | ------------- | --- | Branch? | 5.4 | Bug fix? | yes | New feature? | no <!-- please update src/**/CHANGELOG.md files --> | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tickets | none | License | MIT When use doctrine annotations and set formats parameter throw and error `array_merge(): Argument #2 must be of type array, null given` `in vendor/symfony/validator/Constraints/CssColor.php (line 75) ` Commits ------- bba6e15 [Validator] Error using CssColor with doctrine annotations
dunglas
pushed a commit
that referenced
this pull request
Apr 19, 2022
… resource (Seldaek) This PR was squashed before being merged into the 4.4 branch. Discussion ---------- [Process] Avoid calling fclose on an already closed resource | Q | A | ------------- | --- | Branch? | 4.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | Fix #... <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead --> | License | MIT | Doc PR | symfony/symfony-docs#... <!-- required for new features --> I got this in Composer while interrupting an install process with Ctrl-C. ``` PHP Fatal error: Uncaught TypeError: fclose(): supplied resource is not a valid stream resource in /var/www/composer/vendor/symfony/process/Pipes/AbstractPipes.php:50 Stack trace: #0 /var/www/composer/vendor/symfony/process/Pipes/AbstractPipes.php(50): fclose() #1 /var/www/composer/vendor/symfony/process/Pipes/UnixPipes.php(50): Symfony\Component\Process\Pipes\AbstractPipes->close() #2 [internal function]: Symfony\Component\Process\Pipes\UnixPipes->__destruct() #3 {main} thrown in /var/www/composer/vendor/symfony/process/Pipes/AbstractPipes.php on line 50 ``` I am assuming it's due to a process which was not closed properly, which is very likely given we run a bunch of them concurrently.. It's pretty hard to debug as it's also hard to reproduce, so I am not sure what to do except handle this case gracefully in the close/__destruct function and hope that at least lets it clean up processes without crashing this way. Commits ------- a9e43a7 [Process] Avoid calling fclose on an already closed resource
dunglas
pushed a commit
that referenced
this pull request
Apr 19, 2022
…usse) This PR was merged into the 4.4 branch. Discussion ---------- [HttpClient] Handle requests with null body | Q | A | ------------- | --- | Branch? | 4.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | / | License | MIT | Doc PR | / since symfony#45527 passing null to the `body` parameters leads to an exception (which [breaks async-aws](https://github.com/async-aws/aws/blob/09723ddca29b8d1d522426f81dd422373de1785f/src/Core/src/AbstractApi.php#L157)) > Argument #2 ($body) must be of type Closure, null given, called in /home/runner/work/aws/aws/vendor/symfony/http-client/CurlHttpClient.php on line 221 In curl client: `null` is not a string and `self::readRequestBody` expects a closure. https://github.com/symfony/symfony/blob/08fa74a16c84895575e305b2a7ee3a03e371f79b/src/Symfony/Component/HttpClient/CurlHttpClient.php#L214-L221 In NativeClient, `getBodyAsString` will fail to return `null` because of the `string` return type. Before symfony#45527 null was converted to `""` thanks to the defaultOptions, but this is not the case anymore. In many places, we check if the body is `!== ""` but rarely check if the body is null, this PR restores the original behaviors for the `body` parameters and converts nulls to `""`. Commits ------- 39aec09 [HttpClient] Handle requests with null body
dunglas
pushed a commit
that referenced
this pull request
Apr 19, 2022
Because Security::LAST_USERNAME not always exist, it can trigger a "preg_match(): Argument #2 ($subject) must be of type string" if $username is null
dunglas
pushed a commit
that referenced
this pull request
Apr 19, 2022
…Security::LAST_USERNAME (David-Crty) This PR was merged into the 5.4 branch. Discussion ---------- [RateLimiter] Adding default empty string value on Security::LAST_USERNAME Because `Security::LAST_USERNAME` not always exist, it can trigger a `preg_match(): Argument #2 ($subject) must be of type string` if $username is null The error is critical when having `declare(strict_types=1)`, to avoid issue when people create their own LoginRateLimiter from the DefaultLoginRateLimiter we can juste set a default empty string. | Q | A | ------------- | --- | Branch? | 5.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | License | MIT Commits ------- 0fdfcae [RateLimiter] Adding default empty value
dunglas
pushed a commit
that referenced
this pull request
Sep 17, 2022
In the cached file of my application I can see the following code fragment that have been generated by Symfony: ```php if (( !((array_key_exists("render_preferred_choices", $context)) ? (_twig_default_filter((isset($context["render_preferred_choices"]) || array_key_exists("render_preferred_choices", $context) ? $context["render_preferred_choices"] : (function () { throw new RuntimeError('Variable "render_preferred_choices" does not exist.', 88, $this->source); })()), false)) : (false)) && Symfony\Bridge\Twig\Extension\twig_is_selected_choice($context["choice"], (isset($context["value"]) || array_key_exists("value", $context) ? $context["value"] : (function () { throw new RuntimeError('Variable "value" does not exist.', 88, $this->source); })())))) { echo " selected=\"selected\""; } ``` The 2nd Arg passed when calling ``twig_is_selected_choice`` if the result of ``(isset($context["value"]) || array_key_exists("value", $context) ? $context["value"]``. In that condition, if ``$context['value'] = null, we pass the null Currently I got the following error: ``` Symfony\Bridge\Twig\Extension\twig_is_selected_choice(): Argument #2 ($selectedValue) must be of type array|string, null given, called in X:\workspace-novento\novento-vip-lounge\var\cache\admin_dev\twig\01\01615438ee40292438687b29025d08a9.php on line 534 ```
dunglas
pushed a commit
that referenced
this pull request
Sep 17, 2022
…el057) This PR was merged into the 6.0 branch. Discussion ---------- Allow passing null in twig_is_selected_choice | Q | A | ------------- | --- | Branch? | 6.0 and > | Bug fix? | yes | New feature? | no | Deprecations? | no | License | MIT In the cached file of my application, generated by Symfony I can see the following code fragment: ```php if (( !((array_key_exists("render_preferred_choices", $context)) ? (_twig_default_filter((isset($context["render_preferred_choices"]) || array_key_exists("render_preferred_choices", $context) ? $context["render_preferred_choices"] : (function () { throw new RuntimeError('Variable "render_preferred_choices" does not exist.', 88, $this->source); })()), false)) : (false)) && Symfony\Bridge \Twig\Extension\twig_is_selected_choice($context["choice"], (isset($context["value"]) || array_key_exists("value", $context) ? $context["value"] : (function () { throw new RuntimeError('Variable "value" does not exist.', 88, $this->source); })())))) { echo " selected=\"selected\""; } ``` The 2nd Arg passed when calling ``twig_is_selected_choice`` is the result of ``(isset($context["value"]) || array_key_exists("value", $context) ? $context["value"]``. So in case ``$context['value'] = null``, we pass ``null`` as 2nd arg of ``twig_is_selected_choice``. As a result in some case, when I submit form with empty (null) value, I got the following error: ``` Symfony\Bridge\Twig\Extension\twig_is_selected_choice(): Argument #2 ($selectedValue) must be of type array|string, null given, called in ...\var\cache\dev\twig\01\01615438ee40292438687b29025d08a9.php on line 534 ``` Commits ------- 0186ecb Allow passing null in twig_is_selected_choice
dunglas
pushed a commit
that referenced
this pull request
Sep 17, 2022
…es (SerafimArts) This PR was squashed before being merged into the 6.2 branch. Discussion ---------- [VarDumper] Add `FFI\CData` and `FFI\CType` types | Q | A | ------------- | --- | Branch? | 6.2 | Bug fix? | no | New feature? | yes | Deprecations? | no | Tickets | - | License | MIT | Doc PR | - Added support of FFI: ```php $ffi = \FFI::cdef(<<<'CPP' typedef struct { int x; int y; } Point; typedef struct Example { uint8_t array[32]; long longVal; __extension__ union { __extension__ struct { short shortVal; }; struct { Point point; float e; }; }; bool boolValue; int (*func)(struct __sub *h); } Example; CPP); $struct = $ffi->new('Example'); $struct->func = (static fn (object $ptr) => 42); dump($struct); ``` **Before** ``` FFI\CData {#2} ``` **After** ``` FFI\CData<struct Example> size 64 align 8 {#2 +array: FFI\CData<uint8_t[32]> size 32 align 1 {symfony#18} +int32_t longVal: 0 +int16_t shortVal: 0 +point: FFI\CData<struct <anonymous>> size 8 align 4 {symfony#17 +int32_t x: 0 +int32_t y: 0 } +float e: 0.0 +bool boolValue: false +func: [cdecl] callable(struct __sub*): int32_t {symfony#20 returnType: FFI\CType<int32_t> size 4 align 4 {symfony#25} } } ``` P.S. I apologize for the multiple force pushes, errors in tests and codestyle have been fixed. ## Review And TODOs - Pointers - [x] Pointer to scalar tests. - [x] Pointer to struct tests. - [x] "Special" pointer to `char*` tests (with `\0` and without `\0`). - Possible Errors - [x] Do not dump union fields with pointer references (possible SIGSEGV). Commits ------- 1c7dc52 [VarDumper] Add `FFI\CData` and `FFI\CType` types
dunglas
pushed a commit
that referenced
this pull request
Mar 11, 2023
…(HypeMC) This PR was merged into the 6.2 branch. Discussion ---------- [HttpKernel] Fix `CacheAttributeListener` priority | Q | A | ------------- | --- | Branch? | 6.2 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | - | License | MIT | Doc PR | - Currently the `CacheAttributeListener` & the `IsGrantedAttributeListener` have the same priority: ``` Registered Listeners for "kernel.controller_arguments" Event ============================================================ ------- --------------------------------------------------------------------------------------------------------- ---------- Order Callable Priority ------- --------------------------------------------------------------------------------------------------------- ---------- #1 Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments() 10 #2 Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments() 10 #3 Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments() 0 ------- --------------------------------------------------------------------------------------------------------- ---------- ``` Since the `CacheAttributeListener` is alphabetically first, it's first to get triggered. This can cause an unauthenticated user to receive a 304 Not modified instead of a 302 Redirect, resulting in the user seeing some stale content from when they were authenticated instead of getting redirected to the login page. This PR changes the priority of the `CacheAttributeListener` to be lower than that of the `IsGrantedAttributeListener`. Commits ------- 90eb89f [HttpKernel] Fix CacheAttributeListener priority
dunglas
pushed a commit
that referenced
this pull request
Mar 11, 2023
…azak) This PR was submitted for the 6.2 branch but it was merged into the 5.4 branch instead. Discussion ---------- [Serializer] Fix CsvEncoder decode on empty data | Q | A | ------------- | --- | Branch? | 5.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | - | License | MIT | Doc PR | - Test that reproduces the error: https://gist.github.com/cazak/954d8bfe53d5b9139667eae8fe53957f The message i get after running the test: 1x: explode(): Passing null to parameter #2 ($string) of type string is deprecated 1x in CsvEncoderTest::testSuccess from App\Tests\Functional\Task Commits ------- 6c22622 [Serializer] Fix CsvEncoder decode on empty data
dunglas
pushed a commit
that referenced
this pull request
Mar 11, 2023
…rows PHP 8.1 deprecation when no user agent is set (juagarc4) This PR was squashed before being merged into the 5.4 branch. Discussion ---------- [MonologBridge] FirePHPHandler::onKernelResponse throws PHP 8.1 deprecation when no user agent is set | Q | A | ------------- | --- | Branch? | 5.4 | Bug fix? | yes/no | New feature? no | Deprecations? no | Tickets | Fix symfony#49392 | License | MIT - Add casting to the second parameter to pass always the right type. **PHPstan before:** ------ -------------------------------------------------------------------------------------------------------- Line FirePHPHandler.php ------ -------------------------------------------------------------------------------------------------------- 27 Property Symfony\Bridge\Monolog\Handler\FirePHPHandler::$headers has no type specified. 37 Method Symfony\Bridge\Monolog\Handler\FirePHPHandler::onKernelResponse() has no return type specified. **44 Parameter #2 $subject of function preg_match expects string, string|null given.** 68 If condition is always true. ------ -------------------------------------------------------------------------------------------------------- **PHPstan after:** ------ -------------------------------------------------------------------------------------------------------- Line FirePHPHandler.php ------ -------------------------------------------------------------------------------------------------------- 27 Property Symfony\Bridge\Monolog\Handler\FirePHPHandler::$headers has no type specified. 37 Method Symfony\Bridge\Monolog\Handler\FirePHPHandler::onKernelResponse() has no return type specified. 68 If condition is always true. ------ -------------------------------------------------------------------------------------------------------- Commits ------- 4d84c46 [MonologBridge] FirePHPHandler::onKernelResponse throws PHP 8.1 deprecation when no user agent is set
dunglas
pushed a commit
that referenced
this pull request
Mar 11, 2023
…ult Enum parameter in constructor (kapiwko) This PR was submitted for the 6.3 branch but it was squashed and merged into the 5.4 branch instead. Discussion ---------- [VarDumper] Fix error when reflected class has default Enum parameter in constructor | Q | A | ------------- | --- | Branch? | 5.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | no | License | MIT | Doc PR | no Have classes: ``` enum GeometryType: string { case Geometry = 'GEOMETRY'; } ``` ``` final class Geometry { public function __construct(GeometryType $type = GeometryType::Geometry) { } } ``` Try to dump reflection of class Geometry: ``` $reflection = new \ReflectionClass(Geometry::class); dump($reflection); ``` Have error: `Symfony\Component\VarDumper\Caster\ConstStub::__construct(): Argument #2 ($value) must be of type string|int|float|null, App\Infrastructure\Geometry\GeometryType given, called in [...]/vendor/symfony/var-dumper/Caster/ReflectionCaster.php on line 296` Commits ------- d6a7730 [VarDumper] Fix error when reflected class has default Enum parameter in constructor
nicolas-grekas
pushed a commit
that referenced
this pull request
Oct 22, 2024
nicolas-grekas
added a commit
that referenced
this pull request
Oct 22, 2024
…h()` (simoheinonen) This PR was merged into the 5.4 branch. Discussion ---------- [MonologBridge] Fix PHP deprecation with `preg_match()` | Q | A | ------------- | --- | Branch? | 5.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Issues | | License | MIT ``` preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated ``` Commits ------- 4d7a6f6 Passing null to parameter #2 ($subject) of type string is deprecated
nicolas-grekas
pushed a commit
that referenced
this pull request
Oct 22, 2024
* 5.4: do not mix named and positional arguments in data provider definitions session names must not be empty fix Contracts directory name in PHPUnit configuration Passing null to parameter #2 ($subject) of type string is deprecated
nicolas-grekas
pushed a commit
that referenced
this pull request
Oct 22, 2024
* 6.4: do not mix named and positional arguments in data provider definitions session names must not be empty fix Contracts directory name in PHPUnit configuration Passing null to parameter #2 ($subject) of type string is deprecated
nicolas-grekas
pushed a commit
that referenced
this pull request
Oct 22, 2024
* 7.1: do not mix named and positional arguments in data provider definitions session names must not be empty add missing properties fix Contracts directory name in PHPUnit configuration [Validator][CidrValidator] Fix error message for `OutOfRangeNetmask` validation Passing null to parameter #2 ($subject) of type string is deprecated
dunglas
pushed a commit
that referenced
this pull request
Nov 27, 2024
… not throw exception (lyrixx) This PR was merged into the 5.4 branch. Discussion ---------- [HttpKernel] Ensure `HttpCache::getTraceKey()` does not throw exception | Q | A | ------------- | --- | Branch? | 5.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Issues | - | License | MIT We have such logs in our logs. It's in our raw PHP logs. They are not caught by monolog, it's too early ``` [11-Oct-2024 01:23:33 UTC] PHP Fatal error: Uncaught Symfony\Component\HttpFoundation\Exception\SuspiciousOperationException: Invalid method override "__CONSTRUCT". in /var/www/redirection.io/backend/blue/vendor/symfony/http-foundation/Request.php:1234 Stack trace: #0 /var/www/redirection.io/backend/blue/vendor/symfony/http-kernel/HttpCache/HttpCache.php(728): Symfony\Component\HttpFoundation\Request->getMethod() #1 /var/www/redirection.io/backend/blue/vendor/symfony/http-kernel/HttpCache/HttpCache.php(207): Symfony\Component\HttpKernel\HttpCache\HttpCache->getTraceKey() #2 /var/www/redirection.io/backend/blue/vendor/symfony/http-kernel/Kernel.php(188): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle() #3 /var/www/redirection.io/backend/blue/web/app.php(9): Symfony\Component\HttpKernel\Kernel->handle() #4 {main} thrown in /var/www/redirection.io/backend/blue/vendor/symfony/http-foundation/Request.php on line 1234 ``` I managed to reproduced locally. * Before the patch, without the http_cache, symfony returns a 405 * After the patch, without the http_cache, symfony returns a 405 * Before the patch, with the http_cache, symfony returns a 500, without any information (too early) * After the patch, with the http_cache, symfony returns a 405 Commits ------- a2ebbe0 [HttpKernel] Ensure HttpCache::getTraceKey() does not throw exception
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.