forked from symfony/symfony
-
Notifications
You must be signed in to change notification settings - Fork 0
Prevent BC in instantiateObject #1
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
theofidry
merged 1 commit into
theofidry:feature/param-object
from
dunglas:theofidry-feature/param-object
Jul 10, 2016
Merged
Prevent BC in instantiateObject #1
theofidry
merged 1 commit into
theofidry:feature/param-object
from
dunglas:theofidry-feature/param-object
Jul 10, 2016
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
fdea509 to
7b5d55d
Compare
theofidry
pushed a commit
that referenced
this pull request
Jul 23, 2019
This PR was merged into the 4.3 branch. Discussion ---------- [Messenger] improve logs | Q | A | ------------- | --- | Branch? | 4.3 | Bug fix? | no | New feature? | no <!-- please update src/**/CHANGELOG.md files --> | BC breaks? | no <!-- see https://symfony.com/bc --> | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tests pass? | yes <!-- please add some, will be required by reviewers --> | Fixed tickets | | License | MIT | Doc PR | The logs are currently very confusing and duplicated: - When handled sync the uncaught error it logged and displayed by the console / http error handler anyway. Currently it the warning is duplicated and useless: ``` 14:26:11 WARNING [messenger] An exception occurred while handling message "{class}": OUCH, THAT HURTS! GO TO MOM! 14:26:11 ERROR [console] Error thrown while running command "{class}". Message: "OUCH, THAT HURTS! GO TO MOM!" In HandleMessageMiddleware.php line 82: [Symfony\Component\Messenger\Exception\HandlerFailedException] OUCH, THAT HURTS! GO TO MOM! ``` - When handling async is was even confusing because the actual error was logged as warning and the retry (which is a good thing) was the error. ``` 13:48:15 WARNING [messenger] An exception occurred while handling message "{class}": OUCH, THAT HURTS! GO TO MOM! 13:48:15 ERROR [messenger] Retrying {class} - retry #1. ``` Now it's must clearer and adds even context like the delay: ``` 16:20:11 ERROR [messenger] Error thrown while handling message {class}. Dispatching for retry symfony#3 using 4000 ms delay. Error: "OUCH, THAT HURTS! GO TO MOM!" ... 16:20:15 CRITICAL [messenger] Error thrown while handling message {class}. Removing from transport after 3 retries. Error: "OUCH, THAT HURTS! GO TO MOM!" ``` Commits ------- 2ac7027 [Messenger] improve logs
theofidry
pushed a commit
that referenced
this pull request
Jan 18, 2024
theofidry
pushed a commit
that referenced
this pull request
Jan 18, 2024
…ring, bool given (danepowell) This PR was merged into the 5.4 branch. Discussion ---------- [Console] trim(): Argument #1 () must be of type string, bool given | 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 | Fix #... <!-- prefix each issue number with "Fix #", no need to create an issue if none exists, explain below instead --> | License | MIT | Doc PR | symfony/symfony-docs#... <!-- required for new features --> <!-- Replace this notice by a short README for your feature/bugfix. This will help reviewers and should be a good start for the documentation. Additionally (see https://symfony.com/releases): - Always add tests and ensure they pass. - Bug fixes must be submitted against the lowest maintained branch where they apply (lowest branches are regularly merged to upper ones so they get the fixes too). - Features and deprecations must be submitted against the latest branch. - For new features, provide some code snippets to help understand usage. - Changelog entry should follow https://symfony.com/doc/current/contributing/code/conventions.html#writing-a-changelog-entry - Never break backward compatibility (see https://symfony.com/bc). --> If you run a Symfony Console application in Git Bash, ANSICON is not set out of the box and results in this (suppressed) error: > trim(): Argument ($string) must be of type string, bool given AFAICT, this method is only called from Application::run() and errors are suppressed. So users will never actually see that error. Still, it could have side effects and breaks downstream projects: box-project/box#990 Commits ------- 324b160 trim(): Argument #1 () must be of type string, bool given
theofidry
pushed a commit
that referenced
this pull request
Jan 31, 2024
This PR was merged into the 5.4 branch.
Discussion
----------
[Process] Fixed inconsistent test
| Q | A
| ------------- | ---
| Branch? | 5.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Issues | N/A
| License | MIT
Sometimes the process no longer appears to be running when the signal is sent which causes a LogicException to be thrown. This doesn't appear to be consistent and I can reproduce it randomly on my local machine. To avoid having tests fail at random I decided that it's better to send the signal only if the process is still marked as running.
```bash
amne@wnbpowerbox:~/work/projects/symfony$ php7.4 src/Symfony/Component/Process/Tests/ErrorProcessInitiator.php
The process "'php' '-r' 'echo '\''ready'\''; trigger_error('\''error'\'', E_USER_ERROR);'" exceeded the timeout of 0.5 seconds.
amne@wnbpowerbox:~/work/projects/symfony$ php7.4 src/Symfony/Component/Process/Tests/ErrorProcessInitiator.php
The process "'php' '-r' 'echo '\''ready'\''; trigger_error('\''error'\'', E_USER_ERROR);'" exceeded the timeout of 0.5 seconds.
amne@wnbpowerbox:~/work/projects/symfony$ php7.4 src/Symfony/Component/Process/Tests/ErrorProcessInitiator.php
The process "'php' '-r' 'echo '\''ready'\''; trigger_error('\''error'\'', E_USER_ERROR);'" exceeded the timeout of 0.5 seconds.
amne@wnbpowerbox:~/work/projects/symfony$ php7.4 src/Symfony/Component/Process/Tests/ErrorProcessInitiator.php
The process "'php' '-r' 'echo '\''ready'\''; trigger_error('\''error'\'', E_USER_ERROR);'" exceeded the timeout of 0.5 seconds.
amne@wnbpowerbox:~/work/projects/symfony$ php7.4 src/Symfony/Component/Process/Tests/ErrorProcessInitiator.php
PHP Fatal error: Uncaught Symfony\Component\Process\Exception\LogicException: Cannot send signal on a non running process. in /home/amne/work/projects/symfony/src/Symfony/Component/Process/Process.php:1502
Stack trace:
#0 /home/amne/work/projects/symfony/src/Symfony/Component/Process/Process.php(516): Symfony\Component\Process\Process->doSignal()
#1 /home/amne/work/projects/symfony/src/Symfony/Component/Process/Tests/ErrorProcessInitiator.php(28): Symfony\Component\Process\Process->signal()
symfony#2 {main}
thrown in /home/amne/work/projects/symfony/src/Symfony/Component/Process/Process.php on line 1502
```
Commits
-------
00ee4ca [Process] Fixed inconsistent test
theofidry
pushed a commit
that referenced
this pull request
Jan 31, 2024
…read from socket (xdanik) This PR was merged into the 5.4 branch. Discussion ---------- [Mailer] Throw `TransportException` when unable to read from socket | Q | A | ------------- | --- | Branch? | 5.4 | Bug fix? | yes | New feature? | no | Deprecations? |no | Issues | None | License | MIT We are seeing error `fgets(): SSL: Connection reset by peer` multiple times a day from connection to Office 365 SMTP server (smtp.office365.com:587). It's certainly related to some kind of timeout as we are sending emails from long running queue dispatcher and error shows up only occasionally and never with the first message. We are not seeing this issue with any other SMTP server, but we have not tested much past smtp.mandrillapp.com and local MailHog. We have tried adjusting the `$pingThreshold` and `$restartThreshold` options, but without much success (well `$restartThreshold = 1` resolves the issue, but it also forces the transport to close connection after each message). Stack trace: ``` #0 /var/www/vendor/symfony/mailer/Transport/Smtp/Stream/AbstractStream.php(77): fgets(Resource(stream)) #1 /var/www/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php(315): Symfony\Component\Mailer\Transport\Smtp\Stream\AbstractStream->readLine() symfony#2 /var/www/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php(181): Symfony\Component\Mailer\Transport\Smtp\SmtpTransport->getFullResponse() symfony#3 /var/www/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php(140): Symfony\Component\Mailer\Transport\Smtp\SmtpTransport->executeCommand("RSET ", Array(1)) symfony#4 /var/www/vendor/symfony/mailer/Mailer.php(45): Symfony\Component\Mailer\Transport\Smtp\SmtpTransport->send(Object(Symfony\Component\Mime\Email), Null) symfony#5 (our queue dispatcher): Symfony\Component\Mailer\Mailer->send(Object(Symfony\Component\Mime\Email)) ``` App is running on PHP 8.0.28 on Debian Linux x64, Mailer v5.4.22. I would gladly written some tests for this, but I don't know how to simulate calls to low-level stream functions like fgets. Commits ------- 44d5b57 [Mailer] Throw TransportException when unable to read from socket
theofidry
pushed a commit
that referenced
this pull request
Oct 2, 2024
…rsimpsons) This PR was merged into the 5.4 branch. Discussion ---------- [Yaml] 🐛 throw ParseException on invalid date | Q | A | ------------- | --- | Branch? | 5.4 <!-- see below --> | Bug fix? | yes | New feature? | no <!-- please update src/**/CHANGELOG.md files --> | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Issues | None <!-- prefix each issue number with "Fix #", no need to create an issue if none exists, explain below instead --> | License | MIT (found in symfony-tools/docs-builder#179) When parsing the following yaml: ``` date: 6418-75-51 ``` `symfony/yaml` will throw an exception: ``` $ php main.php PHP Fatal error: Uncaught Exception: Failed to parse time string (6418-75-51) at position 6 (5): Unexpected character in /tmp/symfony-yaml/vendor/symfony/yaml/Inline.php:714 Stack trace: #0 /tmp/symfony-yaml/vendor/symfony/yaml/Inline.php(714): DateTimeImmutable->__construct() #1 /tmp/symfony-yaml/vendor/symfony/yaml/Inline.php(312): Symfony\Component\Yaml\Inline::evaluateScalar() symfony#2 /tmp/symfony-yaml/vendor/symfony/yaml/Inline.php(80): Symfony\Component\Yaml\Inline::parseScalar() symfony#3 /tmp/symfony-yaml/vendor/symfony/yaml/Parser.php(790): Symfony\Component\Yaml\Inline::parse() symfony#4 /tmp/symfony-yaml/vendor/symfony/yaml/Parser.php(341): Symfony\Component\Yaml\Parser->parseValue() symfony#5 /tmp/symfony-yaml/vendor/symfony/yaml/Parser.php(86): Symfony\Component\Yaml\Parser->doParse() symfony#6 /tmp/symfony-yaml/vendor/symfony/yaml/Yaml.php(77): Symfony\Component\Yaml\Parser->parse() symfony#7 /tmp/symfony-yaml/main.php(8): Symfony\Component\Yaml\Yaml::parse() symfony#8 {main} thrown in /tmp/symfony-yaml/vendor/symfony/yaml/Inline.php on line 714 ``` This is because the "month" is invalid. Fixing the "month" will trigger about the same issue because the "day" would be invalid. With the current change it will throw a `ParseException`. Commits ------- 6d71a7e 🐛 throw ParseException on invalid date
theofidry
pushed a commit
that referenced
this pull request
Oct 2, 2024
…nse from transport (ZhukV)
This PR was squashed before being merged into the 6.4 branch.
Discussion
----------
[Notifier][TurboSMS] Process partial accepted response from transport
| Q | A
| ------------- | ---
| Branch? | 6.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Issues | None
| License | MIT
TurboSMS can return `null` as message id, if sms not sent to recipient. Example:
```json
{
"response_code": 802,
"response_status": "SUCCESS_MESSAGE_PARTIAL_ACCEPTED",
"response_result": [
{
"phone": "recipient_1",
"response_code": 406,
"message_id": null,
"response_status": "NOT_ALLOWED_RECIPIENT_COUNTRY"
},
{
"phone": "recipient_2",
"response_code": 0,
"message_id": "f83f8868-5e46-c6cf-e4fb-615e5a293754",
"response_status": "OK"
}
]
}
```
And we receive error:
```
Symfony\Component\Notifier\Message\SentMessage::setMessageId(): Argument #1 ($id) must be of type string, null given, called in /code/vendor/symfony/turbo-sms-notifier/TurboSmsTransport.php on line 93
```
Symfony use only one phone number for sent, as result we check only first `response_result`.
Commits
-------
932dbe3 [Notifier][TurboSMS] Process partial accepted response from transport
theofidry
pushed a commit
that referenced
this pull request
Dec 6, 2024
Without the fix running `SYMFONY_PHPUNIT_SKIPPED_TESTS='phpunit.skipped' php
./phpunit src/Symfony/Component/Lock/Tests/Store/DoctrineDbalPostgreSqlStoreTest.php`
without the pdo_pgsql extension enabled the generated skip file looked like this:
```
<?php return array (
'PHPUnit\\Framework\\DataProviderTestSuite' =>
array (
'Symfony\\Component\\Lock\\Tests\\Store\\DoctrineDbalPostgreSqlStoreTest::testInvalidDriver' => 1,
),
'Symfony\\Component\\Lock\\Tests\\Store\\DoctrineDbalPostgreSqlStoreTest' =>
array (
'testSaveAfterConflict' => 1,
'testWaitAndSaveAfterConflictReleasesLockFromInternalStore' => 1,
'testWaitAndSaveReadAfterConflictReleasesLockFromInternalStore' => 1,
'testSave' => 1,
'testSaveWithDifferentResources' => 1,
'testSaveWithDifferentKeysOnSameResources' => 1,
'testSaveTwice' => 1,
'testDeleteIsolated' => 1,
'testBlockingLocks' => 1,
'testSharedLockReadFirst' => 1,
'testSharedLockWriteFirst' => 1,
'testSharedLockPromote' => 1,
'testSharedLockPromoteAllowed' => 1,
'testSharedLockDemote' => 1,
),
);
```
Thus, running the tests again with the extension enabled would only run 14
tests instead of the expected total number of 16 tests.
With the patch applied the generated skip file looks like this:
```
<?php return array (
'Symfony\\Component\\Lock\\Tests\\Store\\DoctrineDbalPostgreSqlStoreTest' =>
array (
'testInvalidDriver with data set #0' => 1,
'testInvalidDriver with data set #1' => 1,
'testSaveAfterConflict' => 1,
'testWaitAndSaveAfterConflictReleasesLockFromInternalStore' => 1,
'testWaitAndSaveReadAfterConflictReleasesLockFromInternalStore' => 1,
'testSave' => 1,
'testSaveWithDifferentResources' => 1,
'testSaveWithDifferentKeysOnSameResources' => 1,
'testSaveTwice' => 1,
'testDeleteIsolated' => 1,
'testBlockingLocks' => 1,
'testSharedLockReadFirst' => 1,
'testSharedLockWriteFirst' => 1,
'testSharedLockPromote' => 1,
'testSharedLockPromoteAllowed' => 1,
'testSharedLockDemote' => 1,
),
);
```
theofidry
pushed a commit
that referenced
this pull request
Dec 6, 2024
… providers (xabbuh)
This PR was merged into the 5.4 branch.
Discussion
----------
[PhpUnitBridge] fix dumping tests to skip with data providers
| Q | A
| ------------- | ---
| Branch? | 5.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Issues |
| License | MIT
Without the fix running `SYMFONY_PHPUNIT_SKIPPED_TESTS='phpunit.skipped' php ./phpunit src/Symfony/Component/Lock/Tests/Store/DoctrineDbalPostgreSqlStoreTest.php` without the `pdo_pgsql` extension enabled the generated skip file looked like this:
```
<?php return array (
'PHPUnit\\Framework\\DataProviderTestSuite' =>
array (
'Symfony\\Component\\Lock\\Tests\\Store\\DoctrineDbalPostgreSqlStoreTest::testInvalidDriver' => 1,
),
'Symfony\\Component\\Lock\\Tests\\Store\\DoctrineDbalPostgreSqlStoreTest' =>
array (
'testSaveAfterConflict' => 1,
'testWaitAndSaveAfterConflictReleasesLockFromInternalStore' => 1,
'testWaitAndSaveReadAfterConflictReleasesLockFromInternalStore' => 1,
'testSave' => 1,
'testSaveWithDifferentResources' => 1,
'testSaveWithDifferentKeysOnSameResources' => 1,
'testSaveTwice' => 1,
'testDeleteIsolated' => 1,
'testBlockingLocks' => 1,
'testSharedLockReadFirst' => 1,
'testSharedLockWriteFirst' => 1,
'testSharedLockPromote' => 1,
'testSharedLockPromoteAllowed' => 1,
'testSharedLockDemote' => 1,
),
);
```
Thus, running the tests again with the extension enabled would only run 14 tests instead of the expected total number of 16 tests.
With the patch applied the generated skip file looks like this:
```
<?php return array (
'Symfony\\Component\\Lock\\Tests\\Store\\DoctrineDbalPostgreSqlStoreTest' =>
array (
'testInvalidDriver with data set #0' => 1,
'testInvalidDriver with data set #1' => 1,
'testSaveAfterConflict' => 1,
'testWaitAndSaveAfterConflictReleasesLockFromInternalStore' => 1,
'testWaitAndSaveReadAfterConflictReleasesLockFromInternalStore' => 1,
'testSave' => 1,
'testSaveWithDifferentResources' => 1,
'testSaveWithDifferentKeysOnSameResources' => 1,
'testSaveTwice' => 1,
'testDeleteIsolated' => 1,
'testBlockingLocks' => 1,
'testSharedLockReadFirst' => 1,
'testSharedLockWriteFirst' => 1,
'testSharedLockPromote' => 1,
'testSharedLockPromoteAllowed' => 1,
'testSharedLockDemote' => 1,
),
);
```
Commits
-------
95f41cc fix dumping tests to skip with data providers
theofidry
pushed a commit
that referenced
this pull request
Dec 6, 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() symfony#2 /var/www/redirection.io/backend/blue/vendor/symfony/http-kernel/Kernel.php(188): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle() symfony#3 /var/www/redirection.io/backend/blue/web/app.php(9): Symfony\Component\HttpKernel\Kernel->handle() symfony#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
theofidry
pushed a commit
that referenced
this pull request
Apr 18, 2025
…ctor (MaximePinot)
This PR was merged into the 6.4 branch.
Discussion
----------
[Mime] Fix wrong PHPDoc in `FormDataPart` constructor
| Q | A
| ------------- | ---
| Branch? | 6.4
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Issues | - <!-- prefix each issue number with "Fix #", no need to create an issue if none exists, explain below instead -->
| License | MIT
I believe the PHPDoc is wrong.
As far as I understand, the `FormDataPart` expects instances of `TextPart`:
```php
if (!\is_string($item) && !$item instanceof TextPart) {
throw new InvalidArgumentException(sprintf('The value of the form field "%s" can only be a string, an array, or an instance of TextPart, "%s" given.', $fieldName, get_debug_type($item)));
}
```
https://github.com/symfony/symfony/blob/6.4/src/Symfony/Component/Mime/Part/Multipart/FormDataPart.php#L74
The following code is rejected by PHPStan while it works:
```php
final readonly class Foo
{
public function bar(): void
{
new FormDataPart([
new TextPart('baz'),
]);
}
}
```
```shell
------ -------------------------------------------------------------------------------------------------------------------
Line src/Foo.php
------ -------------------------------------------------------------------------------------------------------------------
14 Parameter #1 $fields of class Symfony\Component\Mime\Part\Multipart\FormDataPart constructor expects
array<array|string|Symfony\Component\Mime\Part\DataPart>, array<int, Symfony\Component\Mime\Part\TextPart> given.
------ -------------------------------------------------------------------------------------------------------------------
```
(cc `@B`-Galati)
Commits
-------
886d4ed [Mime] Fix wrong PHPDoc in `FormDataPart` constructor
theofidry
pushed a commit
that referenced
this pull request
Aug 20, 2025
…he secret you are trying to reveal could not be decrypted (jack-worman) This PR was submitted for the 7.4 branch but it was merged into the 7.2 branch instead. Discussion ---------- [FrameworkBundle] Fixes getting a type error when the secret you are trying to reveal could not be decrypted | Q | A | ------------- | --- | Branch? | 7.2 | Bug fix? | yes | New feature? | no | Deprecations? | no | Issues | | License | MIT Fixes getting a type error when the secret you are trying to reveal could not be decrypted. ```txt In SymfonyStyle.php line 322: Symfony\Component\Console\Style\SymfonyStyle::writeln(): Argument #1 ($messages) must be of type Traversable|array|string, null given, called in /Users/jworman/PhpstormProjects/gtx/vendor/symfony/framework-bundle/Command/Sec retsRevealCommand.php on line 67 ``` Not sure if this is considered a bug fix or a new feature Commits ------- 480e7d1 Fix-type-error-when-revealing-broken-secret
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.