Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork9.6k
Untitled#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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Closed
Closed
Untitled#1
Uh oh!
There was an error while loading.Please reload this page.
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
fabpot added a commit that referenced this pull requestJul 22, 2011
Commits-------eae6a77 fixed wrong cased0a175bfixes#1659f300ede fixes several bugsa4f05ac added some testsDiscussion----------Http util fixesFixes several bugs in the http utils.Please don't add anymore features without sufficient tests. Especially for the Security\Http namespace, regressions are very likely otherwise.---------------------------------------------------------------------------by fabpot at 2011/07/19 22:37:26 -0700Tests do not pass for me: There were 2 errors: 1) Symfony\Bundle\SecurityBundle\Tests\Functional\LocalizedRoutesAsPathTest::testLoginLogoutProcedure with data set #0 ('en') InvalidArgumentException: The current node list is empty. .../src/Symfony/Component/DomCrawler/Crawler.php:604 .../src/Symfony/Bundle/SecurityBundle/Tests/Functional/LocalizedRoutesAsPathTest.php:16 2) Symfony\Bundle\SecurityBundle\Tests\Functional\LocalizedRoutesAsPathTest::testLoginLogoutProcedure with data set#1 ('de') InvalidArgumentException: The current node list is empty. .../src/Symfony/Component/DomCrawler/Crawler.php:604 .../src/Symfony/Bundle/SecurityBundle/Tests/Functional/LocalizedRoutesAsPathTest.php:16 -- There were 4 failures: 1) Symfony\Bundle\SecurityBundle\Tests\Functional\LocalizedRoutesAsPathTest::testAccessRestrictedResource with data set #0 ('en') Failed asserting that two strings are equal. --- Expected +++ Actual @@ @@ -http://localhost/en/login +http://localhost/login .../src/Symfony/Bundle/Securitybundle/Tests/Functional/WebTestCase.php:22 .../src/Symfony/Bundle/SecurityBundle/Tests/Functional/LocalizedRoutesAsPathTest.php:38 2) Symfony\Bundle\SecurityBundle\Tests\Functional\LocalizedRoutesAsPathTest::testAccessRestrictedResource with data set#1 ('de') Failed asserting that two strings are equal. --- Expected +++ Actual @@ @@ -http://localhost/de/login +http://localhost/login .../src/Symfony/Bundle/Securitybundle/Tests/Functional/WebTestCase.php:22 .../src/Symfony/Bundle/SecurityBundle/Tests/Functional/LocalizedRoutesAsPathTest.php:38 3) Symfony\Bundle\SecurityBundle\Tests\Functional\LocalizedRoutesAsPathTest::testAccessRestrictedResourceWithForward with data set #0 ('en') HTTP/1.0 302 Found Cache-Control: no-cache Content-Length: 299 Content-Type: text/html; charset=UTF-8 Date: Wed, 20 Jul 2011 05:36:27 GMT Location: http://localhost/login Set-Cookie: PHPSESSID=11c9c6a7e7620e13bddef223a5ba46d9; path=/; domain= <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="refresh" content="1;url=http://localhost/login" /> </head> <body> Redirecting to <a href="http://localhost/login">http://localhost/login</a>. </body> </html> Failed asserting that <integer:0> matches expected <integer:1>. .../src/Symfony/Bundle/SecurityBundle/Tests/Functional/LocalizedRoutesAsPathTest.php:50 4) Symfony\Bundle\SecurityBundle\Tests\Functional\LocalizedRoutesAsPathTest::testAccessRestrictedResourceWithForward with data set#1 ('de') HTTP/1.0 302 Found Cache-Control: no-cache Content-Length: 299 Content-Type: text/html; charset=UTF-8 Date: Wed, 20 Jul 2011 05:36:28 GMT Location: http://localhost/login Set-Cookie: PHPSESSID=2bbe63786a088471ade3717917f4ba4f; path=/; domain= <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="refresh" content="1;url=http://localhost/login" /> </head> <body> Redirecting to <a href="http://localhost/login">http://localhost/login</a>. </body> </html> Failed asserting that <integer:0> matches expected <integer:1>. .../src/Symfony/Bundle/SecurityBundle/Tests/Functional/LocalizedRoutesAsPathTest.php:50---------------------------------------------------------------------------by schmittjoh at 2011/07/19 23:47:29 -0700I fixed a wrong case, but I couldn't reproduce the other errors (tested on Ubuntu).My guess is that the temporary directory on your machine couldn't be deleted for some reason, and the test runs with the configuration of some of the previous tests.---------------------------------------------------------------------------by fabpot at 2011/07/20 00:28:41 -0700That does not make any difference for me. For instance, in `LocalizedRoutesAsPathTest::testLoginLogoutProcedure()`, the first request to `'/'.$locale.'/login'` returns the following Response: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="refresh" content="1;url=http://localhost/login" /> </head> <body> Redirecting to <a href="http://localhost/login">http://localhost/login</a>. </body> </html>---------------------------------------------------------------------------by schmittjoh at 2011/07/20 00:31:34 -0700That's weird, did you make sure that the temporary directory does not exist?``rm -Rf /tmp/StandardFormLogin/``On Wed, Jul 20, 2011 at 9:28 AM, fabpot <reply@reply.github.com>wrote:> That does not make any difference for me. For instance, in> `LocalizedRoutesAsPathTest::testLoginLogoutProcedure()`, the first request> to `'/'.$locale.'/login'` returns the following Response:>> <html>> <head>> <meta http-equiv="Content-Type" content="text/html;> charset=utf-8" />> <meta http-equiv="refresh" content="1;url=> http://localhost/login" />> </head>> <body>> Redirecting to <a href="http://localhost/login">> http://localhost/login</a>.> </body>> </html>>> --> Reply to this email directly or view it on GitHub:>#1739 (comment)>---------------------------------------------------------------------------by fabpot at 2011/07/20 00:33:40 -0700Yes, I've just checked and the directory does not exist.---------------------------------------------------------------------------by schmittjoh at 2011/07/20 00:39:55 -0700Sorry, I can't reproduce it on Ubuntu and unless someone wants to sponsor me a Mac, there is not much I can do.
fabpot added a commit that referenced this pull requestJul 27, 2011
Commits-------07298ac Detect EOF when reading input streamDiscussion----------[Console] Detect EOF when reading input streamThis is related to commits511a9a1 and3a5d508.First of them introduced abort-on-EOF and the second regressed the functionality.Problem is stream_get_line() doesn't return false on EOF. So it needs call to feof() todetect the situation.Still, it's not ideal. With fgets() it worked fine, but with stream_get_line() one has to pressCTRL+D twice to get out. I presume this could be bug in PHP itself.But better than nothing. Please consider.---------------------------------------------------------------------------by fabpot at 2011/07/19 22:47:53 -0700I have used `stream_get_line` especially because it does not return `false` on eof. This is needed when you pass your own stream for unit tests.---------------------------------------------------------------------------by lenar at 2011/07/25 06:05:59 -0700This is not the best solution I think. Tests should mimic and cope with real life not the other way around.Better solution would be to fix testcase. Like this:lenar/SensioGeneratorBundle@6ff3f26. Or maybe create a special "testing" stream wrapper that wraps php://memory and gives out just linefeeds after real data ends.And then change stream_get_line() back to fgets() if there is no other reason for this change.---------------------------------------------------------------------------by fabpot at 2011/07/25 06:24:20 -0700When applying your patch to the generator bundle (and revert to use `fgets`), I get "RuntimeException: Aborted" exceptions.---------------------------------------------------------------------------by lenar at 2011/07/25 06:35:08 -0700With d326f89 added +lenar/SensioGeneratorBundle@6ff3f26 I can successfully run every test in that file.---------------------------------------------------------------------------by fabpot at 2011/07/26 23:31:36 -0700@lenar: not for me. I have many 'Aborted' exception on my Mac.---------------------------------------------------------------------------by fabpot at 2011/07/26 23:41:18 -0700And I have the exact same errors on Linux: There were 7 errors: 1) Sensio\Bundle\GeneratorBundle\Tests\Command\GenerateBundleCommandTest::testInteractiveCommand with data set #0 (array('/tmp'), 'Foo/BarBundle ', array('Foo\\BarBundle', 'FooBarBundle', '/tmp/', 'annotation', false)) RuntimeException: Aborted .../Symfony/Component/Console/Helper/DialogHelper.php:40 .../Symfony/Component/Console/Helper/DialogHelper.php:97 .../symfony-standard/vendor/bundles/Sensio/Bundle/GeneratorBundle/Command/GenerateBundleCommand.php:165 .../Symfony/Component/Console/Command/Command.php:205 .../Symfony/Component/Console/Tester/CommandTester.php:66 .../symfony-standard/vendor/bundles/Sensio/Bundle/GeneratorBundle/Tests/Command/GenerateBundleCommandTest.php:39 2) Sensio\Bundle\GeneratorBundle\Tests\Command\GenerateBundleCommandTest::testInteractiveCommand with data set#1 (array('/tmp'), 'Foo/BarBundle BarBundle foo yml n', array('Foo\\BarBundle', 'BarBundle', 'foo/', 'yml', false)) RuntimeException: Aborted .../Symfony/Component/Console/Helper/DialogHelper.php:40 .../Symfony/Component/Console/Helper/DialogHelper.php:62 .../symfony-standard/vendor/bundles/Sensio/Bundle/GeneratorBundle/Command/GenerateBundleCommand.php:83 .../Symfony/Component/Console/Command/Command.php:214 .../Symfony/Component/Console/Tester/CommandTester.php:66 .../symfony-standard/vendor/bundles/Sensio/Bundle/GeneratorBundle/Tests/Command/GenerateBundleCommandTest.php:39 3) Sensio\Bundle\GeneratorBundle\Tests\Command\GenerateBundleCommandTest::testInteractiveCommand with data set#2 (array('/tmp', 'yml', 'BarBundle', true), 'Foo/BarBundle ', array('Foo\\BarBundle', 'BarBundle', '/tmp/', 'yml', true)) RuntimeException: Aborted .../Symfony/Component/Console/Helper/DialogHelper.php:40 .../Symfony/Component/Console/Helper/DialogHelper.php:97 .../symfony-standard/vendor/bundles/Sensio/Bundle/GeneratorBundle/Command/GenerateBundleCommand.php:165 .../Symfony/Component/Console/Command/Command.php:205 .../Symfony/Component/Console/Tester/CommandTester.php:66 .../symfony-standard/vendor/bundles/Sensio/Bundle/GeneratorBundle/Tests/Command/GenerateBundleCommandTest.php:39 4) Sensio\Bundle\GeneratorBundle\Tests\Command\GenerateDoctrineEntityCommandTest::testInteractiveCommand with data set #0 (array(), 'AcmeBlogBundle:Blog/Post ', array('Blog\\Post', 'annotation', array())) RuntimeException: Aborted .../Symfony/Component/Console/Helper/DialogHelper.php:40 .../Symfony/Component/Console/Helper/DialogHelper.php:97 .../symfony-standard/vendor/bundles/Sensio/Bundle/GeneratorBundle/Command/GenerateDoctrineEntityCommand.php:145 .../Symfony/Component/Console/Command/Command.php:205 .../Symfony/Component/Console/Tester/CommandTester.php:66 .../symfony-standard/vendor/bundles/Sensio/Bundle/GeneratorBundle/Tests/Command/GenerateDoctrineEntityCommandTest.php:39 5) Sensio\Bundle\GeneratorBundle\Tests\Command\GenerateDoctrineEntityCommandTest::testInteractiveCommand with data set#1 (array('AcmeBlogBundle:Blog/Post'), '', array('Blog\\Post', 'annotation', array())) RuntimeException: Aborted .../Symfony/Component/Console/Helper/DialogHelper.php:40 .../Symfony/Component/Console/Helper/DialogHelper.php:97 .../symfony-standard/vendor/bundles/Sensio/Bundle/GeneratorBundle/Command/GenerateDoctrineEntityCommand.php:121 .../Symfony/Component/Console/Command/Command.php:205 .../Symfony/Component/Console/Tester/CommandTester.php:66 .../symfony-standard/vendor/bundles/Sensio/Bundle/GeneratorBundle/Tests/Command/GenerateDoctrineEntityCommandTest.php:39 6) Sensio\Bundle\GeneratorBundle\Tests\Command\GenerateDoctrineEntityCommandTest::testInteractiveCommand with data set#2 (array(), 'AcmeBlogBundle:Blog/Post yml ', array('Blog\\Post', 'yml', array())) RuntimeException: Aborted .../Symfony/Component/Console/Helper/DialogHelper.php:40 .../Symfony/Component/Console/Helper/DialogHelper.php:62 .../symfony-standard/vendor/bundles/Sensio/Bundle/GeneratorBundle/Command/GenerateDoctrineEntityCommand.php:153 .../Symfony/Component/Console/Command/Command.php:205 .../Symfony/Component/Console/Tester/CommandTester.php:66 .../symfony-standard/vendor/bundles/Sensio/Bundle/GeneratorBundle/Tests/Command/GenerateDoctrineEntityCommandTest.php:39 7) Sensio\Bundle\GeneratorBundle\Tests\Command\GenerateDoctrineEntityCommandTest::testInteractiveCommand with data set#3 (array(), 'AcmeBlogBundle:Blog/Post yml title 255 description text ', array('Blog\\Post', 'yml', array(array('title', 'string', 255), array('description', 'text')))) RuntimeException: Aborted .../Symfony/Component/Console/Helper/DialogHelper.php:40 .../Symfony/Component/Console/Helper/DialogHelper.php:62 .../symfony-standard/vendor/bundles/Sensio/Bundle/GeneratorBundle/Command/GenerateDoctrineEntityCommand.php:153 .../Symfony/Component/Console/Command/Command.php:205 .../Symfony/Component/Console/Tester/CommandTester.php:66 .../symfony-standard/vendor/bundles/Sensio/Bundle/GeneratorBundle/Tests/Command/GenerateDoctrineEntityCommandTest.php:39---------------------------------------------------------------------------by lenar at 2011/07/26 23:56:46 -0700@fabpot: and you modified all those tests? I only modified ```Tests/Command/GenerateDoctrineCrudCommandTest.php```and that doesn't fail as I see from your log. I just provided example, though I could add necessary changes for other tests too.---------------------------------------------------------------------------by fabpot at 2011/07/27 00:09:32 -0700@lenar: ah, sorry about that. Then, can you provide a fix for all the other tests too? Thanks a lot.---------------------------------------------------------------------------by lenar at 2011/07/27 00:22:54 -0700@fabpot: actually what do you think about this kind of fix instead for tests:lenar/SensioGeneratorBundle@517f263cb01ea2ea1ef2 instead my previous proposal (lenar/SensioGeneratorBundle@6ff3f26). Really simple, short and effective.---------------------------------------------------------------------------by fabpot at 2011/07/27 00:37:51 -0700@lenar: looks good to me. Can you create a PR?---------------------------------------------------------------------------by lenar at 2011/07/27 00:45:36 -0700@fabpot:sensiolabs/SensioGeneratorBundle#60
fabpot added a commit that referenced this pull requestDec 15, 2011
Commits-------7c2f11f Merge pull request#1 from pminnieur/post_response9f4391f [HttpKernel] fixed DocBlocks2a61714 [HttpKernel] added PostResponseEvent dispatching to HttpKernel915f440 [HttpKernel] removed BC breaks, introduced new TerminableInterface7efe4bc [HttpKernel] Add Kernel::terminate() and HttpKernel::terminate() for post-response logicDiscussion----------[HttpKernel] Add Kernel::terminate() and HttpKernel::terminate() for post-response logicThis came out of a discussion on IRC about doing stuff post-response, and the fact that right now there is no best practice, and it basically requires adding code after the `->send()` call.It's an attempt at fixing it in an official way. Of course terminate() would need to be called explicitly, and added to the front controllers, but then it offers a standard way for everyone to listen on that event and do things without slowing down the user response.---------------------------------------------------------------------------by stof at 2011/12/06 02:41:26 -0800We discussed it on IRC and I suggested a way to avoid the BC break of the interface: adding a new interface (``TerminableInterface`` or whatever better name you find) containing this method.HttpKernel, Kernel and HttpCache can then implement it without breaking the existing apps using the component (Kernel and HttpCache would need an instanceof check to see if the inner kernel implements the method)For Symfony2 users it will mean they have to change their front controller to benefit from the new event of course, but this is easy to do.Btw, Silex can then be able to use it without *any* change for the end users as it can be done inside ``Application::run()``---------------------------------------------------------------------------by pminnieur at 2011/12/06 11:47:03 -0800@Seldaek: I opened a pull request so that the discussion on IRC is fulfilled and no BC breaks exist:https://github.com/Seldaek/symfony/pull/1/files---------------------------------------------------------------------------by fabpot at 2011/12/07 07:59:49 -0800Any real-world use case for this?---------------------------------------------------------------------------by Seldaek at 2011/12/07 08:10:31 -0800Doing slow stuff after the user got his response back without having to implement a message queue. I believe @pminnieur wanted to use it to send logs to loggly?---------------------------------------------------------------------------by pminnieur at 2011/12/07 09:08:41 -0800Its a good practice to defer code execution without the introduction of a new software layer (like gearman, amqp, whatever tools people use to defer code execution) which may be way too much just for the goal of having fast responses, whatever my code does.My real world use case which made me miss this feature the first time: > I have a calendar with a scheduled Event. For a given period of time, several Event entities will be created, coupled to the scheduled event (the schedule Event just keeps track of `startDate`, `endDate` and the `dateInterval`). Let's say we want this scheduled Event to be on every Monday-Friday, on a weekly basis, for the next 10 years.This means I have to create `10*52*5` Event entities before I could even think about sending a simple redirect response. If I could defer code execution, I'd only save the scheduled Event, send the redirect response and after that, I create the `10*52*5` entities.The other use case was loggly, yes. Sending logging data over the wire before the response is send doesn't make sense in my eyes, so it could be deferred after the response is send (this especially sucks if loggly fails and i get a 500 --the frontend/public user is not interested in a working logging facility, he wants his responses).---------------------------------------------------------------------------by mvrhov at 2011/12/07 10:07:03 -0800This would help significantly, but the real problem, that your process is busy and unavailable for the next request, is still there.---------------------------------------------------------------------------by fabpot at 2011/12/07 10:15:18 -0800I think this is the wrong solution for a real problem.Saying "Its a good practice to defer code execution without the introduction of a new software layer" is just wrong.It is definitely a good practice to defer code execution, but you should use the right tool for the job.I'm -1.---------------------------------------------------------------------------by pminnieur at 2011/12/07 10:25:44 -0800It should just give a possibility to put unimportant but heavy lifting code behind the send request with ease. With little effort people could benefit from the usage of `fastcgi_finish_request` without introducing new software, using `register_shutdown_function` or using `__destruct `(which works for simple things, but may act weird with dependencies).It should not simulate node.js ;-) I agree that the real problem is not solved, but small problems could be solved easily. I personally don't want to setup RabbitMQ or whatever, maintain my crontab or any other software that may allow me to defer code execution.---------------------------------------------------------------------------by Seldaek at 2011/12/08 01:08:32 -0800@fabpot: one could say that on shared hostings it is still useful because they generally don't give you gearman or \*MQs. Anyway I think it'd be nice to really complete the HttpKernel event cycle.---------------------------------------------------------------------------by pminnieur at 2011/12/08 01:48:57 -0800not only on shared hostings, sometimes teams/projects just don't have the resources or knowledge or time to setup such an infrastructure.---------------------------------------------------------------------------by videlalvaro at 2011/12/08 01:53:06 -0800I can say we used `fastcgi_finish_request` quite a lot at poppen with symfony 1.x. It certainly helped us to send data to Graphite, save XHProf runs, send data to RabbitMQ, and so on.For example we used to connect to RabbitMQ and send the messages _after_ calling `fastcgi_finish_request` so the user never had to wait for stuff like that.Also keep in mind that if you are using Gearman or RabbitMQ or whatever tool you use to defer code execution… you are not deferring the network connection handling, sending data over the wire and what not. I know this is obvious but is often overlooked.So it would be nice to have an standard way of doing this.---------------------------------------------------------------------------by henrikbjorn at 2011/12/13 01:42:23 -0800This could have been useful recently while implementing a "Poor mans cronjob" system. The solution was to do a custom Response object and do the stuff after send have been called with a Connection: Close header and ignore_user_abort(); (Yes very ugly)
fabpot added a commit that referenced this pull requestJan 22, 2012
Commits-------753c067 [FrameworkBundle] added $view['form']->csrfToken() helpere1aced8 [Twig] added {{ csrf_token() }} helperDiscussion----------[Twig] [FrameworkBundle] added CSRF token helperI've added a templating helper and Twig function for generating a CSRF token without the overhead of creating a form.```html+jinja<form action="{{ path('user_delete', { 'id': user.id }) }}" method="post"> <input type="hidden" name="_method" value="delete"> <input type="hidden" name="_token" value="{{ csrf_token('delete_user_' ~ user.id) }}"> <button type="submit">delete</button></form>``````php<?phpclass UserController extends Controller{ public function delete(User $user, Request $request) { $csrfProvider = $this->get('form.csrf_provider'); if (!$csrfProvider->isCsrfTokenValid('delete_user_'.$user->getId(), $request->request->get('_token')) { throw new RuntimeException('CSRF attack detected.'); } // etc... }}```The test that is failing on Travis appears to be unrelated, but I may be wrong?```1) Symfony\Bundle\SecurityBundle\Tests\Functional\LocalizedRoutesAsPathTest::testLoginLogoutProcedure with data set#1 ('de')RuntimeException: OUTPUT:Catchable fatal error: Argument 3 passed to Symfony\Bundle\FrameworkBundle\Controller\TraceableControllerResolver::__construct() must be an instance of Symfony\Component\HttpKernel\Debug\Stopwatch, instance of Symfony\Bundle\FrameworkBundle\Controller\ControllerNameParser given, called in /tmp/2.1.0-DEV/StandardFormLogin/cache/securitybundletest/appSecuritybundletestDebugProjectContainer.php on line 94 and defined in /home/vagrant/builds/kriswallsmith/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/TraceableControllerResolver.php on line 37```---------------------------------------------------------------------------by pablodip at 2012-01-10T14:18:45ZAs you don't need forms to use the csrf provider, how about putting its service without the form prefix? It could even make sense to put the CsrfProvider as a component since you can use it standalone and in more cases than only forms. It would be a small component though.---------------------------------------------------------------------------by Tobion at 2012-01-10T17:54:14ZI think it would be more clear to generate the token in the controller. Doing so in the template will spread the CSRF intention across template and controller. So I don't think this extension is necessary.---------------------------------------------------------------------------by kriswallsmith at 2012-01-10T17:58:14Z@pablodip I'm open to the idea of a Csrf component. This would be a good place for some nonce classes as well.@Tobion I disagree. One use case is for a list of users, each with a delete form. Iterating over the users in the controller and generating a token for each, just to iterate over them again in the view is a waste and adds complexity.---------------------------------------------------------------------------by Tobion at 2012-01-10T18:05:14ZI see. But I don't understand why the intention needs to be different for each user to delete. Usually the intention is the same for each form type. I thought this is enough.---------------------------------------------------------------------------by kriswallsmith at 2012-01-10T18:06:13ZYes, a static intention would suffice.---------------------------------------------------------------------------by Tobion at 2012-01-10T18:07:08ZThen your use case is not valid anymore.---------------------------------------------------------------------------by Tobion at 2012-01-10T18:12:25ZI would suggest to make a cookbook article out of it about how to create a simple form without the form component.And include such things as validating the result using the validator component and checking the CSRF.---------------------------------------------------------------------------by kriswallsmith at 2012-01-10T21:32:50ZThis helper makes it easier to use CSRF protection without a form and we should make it as easy as possible. Spreading the intention across controller and template is not concerning to me. Either way, a cookbook entry is a great idea.---------------------------------------------------------------------------by Tobion at 2012-01-10T21:47:12ZWell, it's just one line more without this helper. So I disagree it makes it really easier when you know how to use the CsrfProvider which is a pre-condition anyway since you must still validate its correctness by hand.---------------------------------------------------------------------------by kriswallsmith at 2012-01-13T13:24:15ZAnother use case is when rendering a page with a bunch of simple buttons with different intentions: delete user, delete comment, follow, unfollow... Creating all of these in the controller just leads to spaghetti.---------------------------------------------------------------------------by jwage at 2012-01-17T21:55:53Z:+1: lots of use cases for something like this@opensky
fabpot added a commit that referenced this pull requestApr 7, 2012
Commits-------100e97e [Filesystem] Fixed warnings in makePathRelative().f5f5c21 [Filesystem] Fixed typos in the docblocks.d4243a2 [Filesystem] Fixed a bug in remove being unable to remove symlinks to unexisting file or directory.11a676d [Filesystem] Added unit tests for mirror method.8c94069 [Filesystem] Added unit tests for isAbsolutePath method.2ee4b88 [Filesystem] Added unit tests for makePathRelative method.21860cb [Filesystem] Added unit tests for symlink method.a041feb [Filesystem] Added unit tests for rename method.8071859 [Filesystem] Added unit tests for chmod method.bba0080 [Filesystem] Added unit tests for remove method.8e861b7 [Filesystem] Introduced workspace directory to limit complexity of tests.a91e200 [Filesystem] Added unit tests for touch method.7e297db [Filesystem] Added unit tests for mkdir method.6ac5486 [Filesystem] Added unit tests for copy method.1c833e7 [Filesystem] Added missing docblock comment.Discussion----------[Filesystem] Fixed a bug in remove() being unable to unlink broken symlinksWhile working on test coverage for Filesystem class I discovered a bug in remove() method.Before removing a file a check is made if it exists: if (!file_exists($file)) { continue; }Problem is [file_exists()](http://php.net/file_exists) returns false if link's target file doesn't exist. Therefore remove() will fail to delete a directory containing a broken link. Solution is to handle links a bit different: if (!file_exists($file) && !is_link($file)) { continue; }Additionally, this PR improves test coverage of Filesystem component.Bug fix: yesFeature addition: noBackwards compatibility break: noSymfony2 tests pass: yes---------------------------------------------------------------------------by cordoval at 2012-04-07T00:55:59Z✌.|•͡˘‿•͡˘|.✌---------------------------------------------------------------------------by fabpot at 2012-04-07T06:12:34ZTests do not pass for me: PHPUnit 3.6.10 by Sebastian Bergmann. Configuration read from /Users/fabien/work/symfony/git/symfony/phpunit.xml.dist .........................EE....... Time: 0 seconds, Memory: 5.25Mb There were 2 errors: 1) Symfony\Component\Filesystem\Tests\FilesystemTest::testMakePathRelative with data set #0 ('/var/lib/symfony/src/Symfony/', '/var/lib/symfony/src/Symfony/Component', '../') Uninitialized string offset: 29 .../rc/Symfony/Component/Filesystem/Filesystem.php:183 .../rc/Symfony/Component/Filesystem/Tests/FilesystemTest.php:434 2) Symfony\Component\Filesystem\Tests\FilesystemTest::testMakePathRelative with data set#1 ('var/lib/symfony/', 'var/lib/symfony/src/Symfony/Component', '../../../') Uninitialized string offset: 16 .../rc/Symfony/Component/Filesystem/Filesystem.php:183 .../rc/Symfony/Component/Filesystem/Tests/FilesystemTest.php:434 FAILURES! Tests: 34, Assertions: 67, Errors: 2.---------------------------------------------------------------------------by jakzal at 2012-04-07T07:26:15ZSorry for this. For some reason my PHP error reporting level was to low to catch this...Should be fixed now but I needed to modify the makePathRelative() (this bug existed before).
fabpot pushed a commit that referenced this pull requestJun 19, 2012
[FileSystem] explain possible failure of symlink creation in windows
fabpot added a commit that referenced this pull requestJun 19, 2012
Commits-------a20fc68 Merge pull request#1 from SamsonIT/FilesystemExceptions8eca661 [FileSystem] explains possible failure of symlink creation in windowsb1f8744 Add Changelog BC Break note24eb396 [Filesystem] Added few new behaviors:Discussion----------[Filesystem] Consistence and enhancements for FilesystemBug fix: noFeature addition: yesBackwards compatibility break: **yes**Symfony2 tests pass: yesFixes the following tickets: NoneLicense of the code: MITThis PR adds features and introduce a backward compatibility break.features :- whenever an action fails, a \RuntimeException is thrown- add access to the second and third arguments of ``touch`` function- add a recursive option for chmod- add a chown method- add a chgrp methodThe backward compatibility break happens in the mkdir method : Before this PR, a boolean is returned ; true if all directories were created, false otherwise.It now returns nothing.---------------------------------------------------------------------------by travisbot at 2012-05-18T14:26:42ZThis pull request [passes](http://travis-ci.org/symfony/symfony/builds/1367000) (merged 83cdd622 into1e15f21).---------------------------------------------------------------------------by fabpot at 2012-05-20T02:40:28ZTo be consistent, we should throw exception whenever some operation fails.---------------------------------------------------------------------------by romainneutron at 2012-05-20T21:10:23ZI fix the consistency ; mkdir now throws an exception if a directory creation fails.This introduce a BC break, see PR message which has been updated with all features and BC break.Added chgrp and chown methodsAdd options for touchAdd recursive option for chmod---------------------------------------------------------------------------by travisbot at 2012-05-20T21:11:47ZThis pull request [passes](http://travis-ci.org/symfony/symfony/builds/1383619) (merged a4d1eeb8 into1407f11).---------------------------------------------------------------------------by travisbot at 2012-05-22T10:49:06ZThis pull request [passes](http://travis-ci.org/symfony/symfony/builds/1399027) (merged 7e14b6bd into517ae43).---------------------------------------------------------------------------by travisbot at 2012-05-22T10:58:10ZThis pull request [passes](http://travis-ci.org/symfony/symfony/builds/1399083) (merged 71852653 into517ae43).---------------------------------------------------------------------------by travisbot at 2012-05-22T11:18:44ZThis pull request [passes](http://travis-ci.org/symfony/symfony/builds/1399194) (merged 7645bad3 into517ae43).---------------------------------------------------------------------------by travisbot at 2012-05-23T18:21:47ZThis pull request [fails](http://travis-ci.org/symfony/symfony/builds/1414091) (merged b049d5b1 into517ae43).---------------------------------------------------------------------------by travisbot at 2012-05-23T18:26:19ZThis pull request [fails](http://travis-ci.org/symfony/symfony/builds/1414123) (merged 34903466 into517ae43).---------------------------------------------------------------------------by travisbot at 2012-05-29T16:07:26ZThis pull request [passes](http://travis-ci.org/symfony/symfony/builds/1467173) (merged b1d1eb2e intoadf07f1).---------------------------------------------------------------------------by travisbot at 2012-05-29T16:19:38ZThis pull request [passes](http://travis-ci.org/symfony/symfony/builds/1467261) (merged 42015ffa intoadf07f1).---------------------------------------------------------------------------by romainneutron at 2012-06-01T14:30:45ZAny news about this PR ?---------------------------------------------------------------------------by stloyd at 2012-06-08T09:57:39Z@romainneutron You need to [squash](http://www.silverwareconsulting.com/index.cfm/2010/6/6/Using-Git-Rebase-to-Squash-Commits) your commits, and add more proper message in squashed commit i.e.:> [Filesystem] Added few new behaviors:* whenever an action fails, a `RuntimeException` is thrown* add access to the second and third arguments of `touch()` function* add a recursive option for `chmod()`* add a `chown()` method* add a `chgrp()` method> BC break: `mkdir()` function throw exception in case of failture instead of returning Boolean value.---------------------------------------------------------------------------by romainneutron at 2012-06-08T10:59:55Z@stloyd squash done !---------------------------------------------------------------------------by travisbot at 2012-06-08T11:26:20ZThis pull request [passes](http://travis-ci.org/symfony/symfony/builds/1565540) (merged 8f55ddb6 intof8e68e5).---------------------------------------------------------------------------by travisbot at 2012-06-08T11:41:45ZThis pull request [passes](http://travis-ci.org/symfony/symfony/builds/1566247) (merged 880312b6 intof8e68e5).---------------------------------------------------------------------------by romainneutron at 2012-06-09T11:42:24ZI've added documentation to the Filesystem component :symfony/symfony-docs#1439---------------------------------------------------------------------------by travisbot at 2012-06-09T16:47:20ZThis pull request [passes](http://travis-ci.org/symfony/symfony/builds/1577754) (merged 5647ad41 intof8a09db).---------------------------------------------------------------------------by stloyd at 2012-06-13T14:47:31Z@romainneutron You probably need to rebase your code as some changes were merge into master for `Filesystem`.---------------------------------------------------------------------------by romainneutron at 2012-06-13T15:17:31Z@stloyd rebase OK !by the way, do you have any idea when/if this PR will be merged ?---------------------------------------------------------------------------by travisbot at 2012-06-13T15:20:44ZThis pull request [passes](http://travis-ci.org/symfony/symfony/builds/1611591) (merged c8b86c68 intoc07e916).---------------------------------------------------------------------------by fabpot at 2012-06-16T16:40:50ZYou need to add a note about the BC breaks in the CHANGELOG file.---------------------------------------------------------------------------by fabpot at 2012-06-16T16:43:20ZAlso, instead of using `\RuntimeException`, I would create a custom exception like we have done in other components (an interface + a RuntimeException that implements the interface and extends \RuntimeException). The exception name can be something like `IOException`.---------------------------------------------------------------------------by travisbot at 2012-06-18T10:11:20ZThis pull request [fails](http://travis-ci.org/symfony/symfony/builds/1645757) (merged 925a8234 into0b8b76b).---------------------------------------------------------------------------by stloyd at 2012-06-18T10:14:52Z@fabpot Anything blocking merge of this PR ? (tests are failing because of issue in master, not releted to this PR)---------------------------------------------------------------------------by romainneutron at 2012-06-18T10:29:20Z@fabpot@stloyd the latest push was just a rebase push for PR 4577 (#4577)I'm currently fixing the Exception and changelog things, I'll push very soon---------------------------------------------------------------------------by romainneutron at 2012-06-18T10:44:38Z@fabpot I've added the exception and the exception interface, add the changelog info---------------------------------------------------------------------------by travisbot at 2012-06-18T10:53:34ZThis pull request [fails](http://travis-ci.org/symfony/symfony/builds/1645981) (merged 634d6fb9 into0b8b76b).---------------------------------------------------------------------------by romainneutron at 2012-06-18T11:08:43ZAs reported by@stloyd the PR is failing due to an issue in the master, I re-push and trig the PR build when this issue is solved---------------------------------------------------------------------------by travisbot at 2012-06-18T11:16:58ZThis pull request [fails](http://travis-ci.org/symfony/symfony/builds/1646006) (merged 2f65945a into0b8b76b).
fabpot added a commit that referenced this pull requestNov 1, 2012
This PR was merged into the master branch.Commits-------b550677 [Finder] Fix the BSD adapter2401274 [Finder] Added bsd adapter (need tests).Discussion----------[Finder] Adds bsd adapter.OK on mac os x.---------------------------------------------------------------------------by fabpot at 2012-10-31T08:22:05ZHere are the results for the Finder tests on my Mac:```............................................................... 63 / 181 ( 34%)......................find: -regextype: unknown primary or operatorF..............find: -regextype: unknown primary or operatorfind: -regextype: unknown primary or operator.find: -regextype: unknown primary or operatorfind: -regextype: unknown primary or operator......................... 126 / 181 ( 69%).......................................................Time: 1 second, Memory: 10.75MbThere was 1 failure:1) Symfony\Component\Finder\Tests\FinderTest::testIgnoreDotFiles with data set#1 (Symfony\Component\Finder\Adapter\PhpAdapter)Failed asserting that two arrays are equal.--- Expected+++ Actual@@ @@ Array (- 0 => '/var/folders/h7/55h7wcsx4g1cl...r/.bar'- 1 => '/var/folders/h7/55h7wcsx4g1cl...r/.foo'- 2 => '/var/folders/h7/55h7wcsx4g1cl...o/.bar'- 3 => '/var/folders/h7/55h7wcsx4g1cl...r/.git'- 4 => '/var/folders/h7/55h7wcsx4g1cl...er/foo'- 5 => '/var/folders/h7/55h7wcsx4g1cl...oo bar'- 6 => '/var/folders/h7/55h7wcsx4g1cl...ar.tmp'- 7 => '/var/folders/h7/55h7wcsx4g1cl...st.php'- 8 => '/var/folders/h7/55h7wcsx4g1cl...est.py'- 9 => '/var/folders/h7/55h7wcsx4g1cl...r/toto' ).../src/Symfony/Component/Finder/Tests/Iterator/IteratorTestCase.php:25.../src/Symfony/Component/Finder/Tests/FinderTest.php:207phpunit:46```---------------------------------------------------------------------------by jfsimon at 2012-10-31T08:46:22Z@fabpot thank you! It seems I need to experiment a little more...---------------------------------------------------------------------------by jfsimon at 2012-11-01T14:38:31Z@fabpot BSD adapter is OK on mac os x.
fabpot pushed a commit that referenced this pull requestDec 15, 2012
[FrameworkBundle] Added tests for trusted_proxies configuration.
fabpot added a commit that referenced this pull requestDec 15, 2012
This PR was merged into the 2.0 branch.Commits-------f0743b1 Merge pull request#1 from pylebecq/2.0555e777 [FrameworkBundle] Added tests for trusted_proxies configuration.a0e2391 [FrameworkBundle] used the new method for trusted proxiesDiscussion----------[FrameworkBundle] used the new method for trusted proxiesThis makes the framework bundle using the new method from the request class.---------------------------------------------------------------------------by fabpot at 2012-12-05T10:38:20ZAs this is a sensitive issue, can you add some tests? Thanks.---------------------------------------------------------------------------by bamarni at 2012-12-06T13:00:24ZWell I don't know why it fails on travis, I can't run the full test suite locally because of a segfault but ```phpunit src/Symfony/Bundle/``` marks all the tests as passing.---------------------------------------------------------------------------by fabpot at 2012-12-06T13:08:11ZBut it looks like the failing tests come from what you've changed.---------------------------------------------------------------------------by bamarni at 2012-12-06T13:29:33ZYes, I'm not saying it's not my fault but I can't reproduce this as locally it tells me they pass, I'll try to fix this this evening.---------------------------------------------------------------------------by bamarni at 2012-12-06T17:49:28ZApparently it fails only when running the whole testsuite, looking at other travis builds I can see this one on 2.0 :https://travis-ci.org/symfony/symfony/jobs/3495511 which fails in a similar way than here (https://travis-ci.org/symfony/symfony/jobs/3530928). Because of a place trying to access an undefined $_SERVER key : ```PHP Notice: Undefined index: SCRIPT_NAME ...``` but I can't find where, and the stack trace references some phpunit classes.I'd be happy if someone could give me some pointers in here as I don't have any clue about how to fix this..---------------------------------------------------------------------------by bamarni at 2012-12-06T18:00:57ZAs a consulsion I'd say I can't run the whole testsuite locally (it fails even when I revert my commit), so there is no reliable way for me to fix this, if anyone is up for continuing this feel free.---------------------------------------------------------------------------by fabpot at 2012-12-11T09:47:48Z@bamarni Can you just update this PR with the code change and no tests at all? I will then finish the PR. Thanks.---------------------------------------------------------------------------by bamarni at 2012-12-11T16:58:17Z@fabpot: thanks for helping me out on this, hope you won't run into the same issue!
fabpot added a commit that referenced this pull requestDec 29, 2012
This PR was merged into the 2.1 branch.Commits-------81967f6 [Form] Fixed failing tests for DateTimeToStringTransformer.Discussion----------[Form] Fixed failing tests for DateTimeToStringTransformerBug fix: noFeature addition: noBackwards compatibility break: noSymfony2 tests pass: yesFixes the following tickets: -Todo: -License of the code: MITDocumentation PR: -Tests were only failing at the end of the month. Since February was used in the test cases, date was being moved to the next month (February has less days than other months).If a day is not passed, \DateTime's constructor will set it to the first day of the month:```phpvar_dump(new \DateTime('2010-02'));object(DateTime)#1 (3) { ["date"]=> string(19) "2010-02-01 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/London"}```\DateTime is used in the test assertions.However, DateTimeToStringTransformer::reverseTransform() uses \DateTime::createFromFormat(), which sets a missing day to the current day:```phpvar_dump(\DateTime::createFromFormat("Y-m", '2010-02'));object(DateTime)#1 (3) { ["date"]=> string(19) "2010-03-01 20:09:26" ["timezone_type"]=> int(3) ["timezone"]=> string(13) "Europe/London"}```I changed the date in the test case to avoid failures. If we need to be sure that month's not going to be changed, I'll update my PR.
fabpot added a commit that referenced this pull requestJan 10, 2013
This PR was merged into the master branch.Commits-------0d6be2e Added Portuguese (Portugal) translation to Security87df0b7 Merge pull request#1 from symfony/masterDiscussion----------Add Portuguese from Portugal Security translationTranslation file for portuguese from Portugal added in Security component translations
kriswallsmith added a commit that referenced this pull requestMar 8, 2013
Fixed test to use Reflection
fabpot added a commit that referenced this pull requestMar 8, 2013
This PR was merged into the 2.1 branch.Commits-------27cc0df Merge pull request#1 from merk/class-loader/idempotent95af84c Fixed test to use Reflectionbb08247 [ClassLoader] tweaked test73bead7 [ClassLoader] made DebugClassLoader idempotentDiscussion----------[ClassLoader] made DebugClassLoader idempotentThe DebugClassLoader will wrap itself if `enable()` is called multiple time, such as when running functional tests.Please merge to 2.2 and master ASAP.| Q | A| ------------- | ---| Bug fix? | yes| New feature? | no| BC breaks? | no| Deprecations? | no| Tests pass? | yes| Fixed tickets | ~| License | MIT| Doc PR | ~---------------------------------------------------------------------------by kriswallsmith at 2013-03-07T16:38:55Zping@fabpot: this will speed up lots of functional tests :)---------------------------------------------------------------------------by kriswallsmith at 2013-03-08T04:51:51Z@fabpot fixed by@merk
Closed
dawehner pushed a commit to dawehner/symfony that referenced this pull requestJul 1, 2013
Add ChainRouter based on work by Magnus Norlander
dawehner pushed a commit to dawehner/symfony that referenced this pull requestJul 1, 2013
Fix hard dependency on psr/log
nicolas-grekas added a commit that referenced this pull requestJan 29, 2024
…om 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 | MITWe 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()#2 /var/www/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php(181): Symfony\Component\Mailer\Transport\Smtp\SmtpTransport->getFullResponse()#3 /var/www/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php(140): Symfony\Component\Mailer\Transport\Smtp\SmtpTransport->executeCommand("RSET", Array(1))#4 /var/www/vendor/symfony/mailer/Mailer.php(45): Symfony\Component\Mailer\Transport\Smtp\SmtpTransport->send(Object(Symfony\Component\Mime\Email), Null)#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
nicolas-grekas added a commit that referenced this pull requestJan 30, 2024
…ror with no ExpectedTypes (Jeroeny)This PR was merged into the 6.3 branch.Discussion----------[HttpKernel] Fix `RequestPayloadValueResolver` handling error with no ExpectedTypes| Q | A| ------------- | ---| Branch? | 6.3| Bug fix? | yes| New feature? | no| Deprecations? | no| License | MITThe `NotNormalizableValueException` errors in `PartialDenormalizationException->getErrors()` have a `->getExpectedTypes()` method that returns `array|null`. The `RequestPayloadValueResolver` assumes this is always an array.When the returned value is `null`, an Exception is thrown with `implode(): Argument#1 ($pieces) must be of type array, string given`.Also the exception message in case of an empty array was: `This value should be of type .`.#SymfonyHackdayCommits-------0af85fe Fix RequestPayloadValueResolver handling error with no ExpectedTypes
chalasr added a commit that referenced this pull requestMar 5, 2024
…lishing a message. (jwage)This PR was squashed before being merged into the 6.4 branch.Discussion----------[Messenger] [Amqp] Handle AMQPConnectionException when publishing a message.| Q | A| ------------- | ---| Branch? | 6.4| Bug fix? | yes| New feature? | no| Deprecations? | no| Issues |Fix#36538Fix#48241| License | MITIf you have a message handler that dispatches messages to another queue, you can encounter `AMQPConnectionException` with the message "Library error: a SSL error occurred" or "a socket error occurred" depending on if you are using tls or not or if you are running behind a load balancer or not.You can manually reproduce this issue by dispatching a message where the handler then dispatches another message to a different queue, then go to rabbitmq admin and close the connection manually, then dispatch another message and when the message handler goes to dispatch the other message, you will get this exception:```a socket error occurred#0 /vagrant/vendor/symfony/amqp-messenger/Transport/AmqpTransport.php(60): Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpSender->send()#1 /vagrant/vendor/symfony/messenger/Middleware/SendMessageMiddleware.php(62): Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpTransport->send()#2 /vagrant/vendor/symfony/messenger/Middleware/FailedMessageProcessingMiddleware.php(34): Symfony\Component\Messenger\Middleware\SendMessageMiddleware->handle()#3 /vagrant/vendor/symfony/messenger/Middleware/DispatchAfterCurrentBusMiddleware.php(61): Symfony\Component\Messenger\Middleware\FailedMessageProcessingMiddleware->handle()#4 /vagrant/vendor/symfony/messenger/Middleware/RejectRedeliveredMessageMiddleware.php(41): Symfony\Component\Messenger\Middleware\DispatchAfterCurrentBusMiddleware->handle()#5 /vagrant/vendor/symfony/messenger/Middleware/AddBusNameStampMiddleware.php(37): Symfony\Component\Messenger\Middleware\RejectRedeliveredMessageMiddleware->handle()#6 /vagrant/vendor/symfony/messenger/Middleware/TraceableMiddleware.php(40): Symfony\Component\Messenger\Middleware\AddBusNameStampMiddleware->handle()#7 /vagrant/vendor/symfony/messenger/MessageBus.php(70): Symfony\Component\Messenger\Middleware\TraceableMiddleware->handle()#8 /vagrant/vendor/symfony/messenger/TraceableMessageBus.php(38): Symfony\Component\Messenger\MessageBus->dispatch()#9 /vagrant/src/Messenger/MessageBus.php(37): Symfony\Component\Messenger\TraceableMessageBus->dispatch()#10 /vagrant/vendor/symfony/mailer/Mailer.php(66): App\Messenger\MessageBus->dispatch()#11 /vagrant/src/Mailer/Mailer.php(83): Symfony\Component\Mailer\Mailer->send()#12 /vagrant/src/Mailer/Mailer.php(96): App\Mailer\Mailer->send()#13 /vagrant/src/MessageHandler/Trading/StrategySubscriptionMessageHandler.php(118): App\Mailer\Mailer->sendEmail()#14 /vagrant/src/MessageHandler/Trading/StrategySubscriptionMessageHandler.php(72): App\MessageHandler\Trading\StrategySubscriptionMessageHandler->handle()#15 /vagrant/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php(152): App\MessageHandler\Trading\StrategySubscriptionMessageHandler->__invoke()#16 /vagrant/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php(91): Symfony\Component\Messenger\Middleware\HandleMessageMiddleware->callHandler()#17 /vagrant/vendor/symfony/messenger/Middleware/SendMessageMiddleware.php(71): Symfony\Component\Messenger\Middleware\HandleMessageMiddleware->handle()#18 /vagrant/vendor/symfony/messenger/Middleware/FailedMessageProcessingMiddleware.php(34): Symfony\Component\Messenger\Middleware\SendMessageMiddleware->handle()#19 /vagrant/vendor/symfony/messenger/Middleware/DispatchAfterCurrentBusMiddleware.php(68): Symfony\Component\Messenger\Middleware\FailedMessageProcessingMiddleware->handle()#20 /vagrant/vendor/symfony/messenger/Middleware/RejectRedeliveredMessageMiddleware.php(41): Symfony\Component\Messenger\Middleware\DispatchAfterCurrentBusMiddleware->handle()#21 /vagrant/vendor/symfony/messenger/Middleware/AddBusNameStampMiddleware.php(37): Symfony\Component\Messenger\Middleware\RejectRedeliveredMessageMiddleware->handle()#22 /vagrant/vendor/symfony/messenger/Middleware/TraceableMiddleware.php(40): Symfony\Component\Messenger\Middleware\AddBusNameStampMiddleware->handle()#23 /vagrant/vendor/symfony/messenger/MessageBus.php(70): Symfony\Component\Messenger\Middleware\TraceableMiddleware->handle()#24 /vagrant/vendor/symfony/messenger/TraceableMessageBus.php(38): Symfony\Component\Messenger\MessageBus->dispatch()#25 /vagrant/vendor/symfony/messenger/RoutableMessageBus.php(54): Symfony\Component\Messenger\TraceableMessageBus->dispatch()#26 /vagrant/vendor/symfony/messenger/Worker.php(162): Symfony\Component\Messenger\RoutableMessageBus->dispatch()#27 /vagrant/vendor/symfony/messenger/Worker.php(109): Symfony\Component\Messenger\Worker->handleMessage()#28 /vagrant/vendor/symfony/messenger/Command/ConsumeMessagesCommand.php(238): Symfony\Component\Messenger\Worker->run()#29 /vagrant/vendor/symfony/console/Command/Command.php(326): Symfony\Component\Messenger\Command\ConsumeMessagesCommand->execute()#30 /vagrant/vendor/symfony/console/Application.php(1096): Symfony\Component\Console\Command\Command->run()#31 /vagrant/vendor/symfony/framework-bundle/Console/Application.php(126): Symfony\Component\Console\Application->doRunCommand()#32 /vagrant/vendor/symfony/console/Application.php(324): Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand()#33 /vagrant/vendor/symfony/framework-bundle/Console/Application.php(80): Symfony\Component\Console\Application->doRun()#34 /vagrant/vendor/symfony/console/Application.php(175): Symfony\Bundle\FrameworkBundle\Console\Application->doRun()#35 /vagrant/vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php(49): Symfony\Component\Console\Application->run()#36 /vagrant/vendor/autoload_runtime.php(29): Symfony\Component\Runtime\Runner\Symfony\ConsoleApplicationRunner->run()#37 /vagrant/bin/console(11): require_once('...')#38 {main}```TODO:- [x] Add test for retry logic when publishing messagesCommits-------f123370 [Messenger] [Amqp] Handle AMQPConnectionException when publishing a message.
xabbuh added a commit that referenced this pull requestAug 12, 2024
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 insymfony-tools/docs-builder#179)When parsing the following yaml:```date: 6418-75-51````symfony/yaml` will throw an exception:```$ php main.phpPHP 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:714Stack 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()#2 /tmp/symfony-yaml/vendor/symfony/yaml/Inline.php(80): Symfony\Component\Yaml\Inline::parseScalar()#3 /tmp/symfony-yaml/vendor/symfony/yaml/Parser.php(790): Symfony\Component\Yaml\Inline::parse()#4 /tmp/symfony-yaml/vendor/symfony/yaml/Parser.php(341): Symfony\Component\Yaml\Parser->parseValue()#5 /tmp/symfony-yaml/vendor/symfony/yaml/Parser.php(86): Symfony\Component\Yaml\Parser->doParse()#6 /tmp/symfony-yaml/vendor/symfony/yaml/Yaml.php(77): Symfony\Component\Yaml\Parser->parse()#7 /tmp/symfony-yaml/main.php(8): Symfony\Component\Yaml\Yaml::parse()#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
nicolas-grekas added a commit that referenced this pull requestSep 16, 2024
…m 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 | MITTurboSMS 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
nicolas-grekas pushed a commit that referenced this pull requestNov 13, 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 14tests 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, ),);```
nicolas-grekas added a commit that referenced this pull requestNov 13, 2024
…ers (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 | MITWithout 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
nicolas-grekas added a commit that referenced this pull requestNov 20, 2024
…row 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 | MITWe 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:1234Stack 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 405Commits-------a2ebbe0 [HttpKernel] Ensure HttpCache::getTraceKey() does not throw exception
nicolas-grekas added a commit that referenced this pull requestDec 2, 2024
…aximePinot)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 | MITI believe the PHPDoc is wrong.As far as I understand, the `FormDataPart` expects instances of `TextPart`:```phpif (!\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#L74The following code is rejected by PHPStan while it works:```phpfinal 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
stobrien89 pushed a commit to stobrien89/symfony that referenced this pull requestFeb 27, 2025
Required DI version should be 2.6 or grater
Kazadri pushed a commit to Kazadri/symfony that referenced this pull requestMay 9, 2025
…-ast-extractor-testsrework tests
This pull request wasclosed.
Sign up for freeto 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.