Posted
about 5 years
ago
by
Javier Eguiluz
Contributed by
Konstantin Myakshin
in #31334.
In the Messenger component, middleware is used to configure what happens when
you dispatch
... [More]
a message to a message bus. In Symfony 4.4 we've added a new
middleware to clear Doctrine's entity manager after each message is consumed.
Enable it by adding messenger.middleware.doctrine_clear_entity_manager to
the middleware of your buses:
YAML
1
2
3
4
5
6
7
8
9
# config/packages/messenger.yaml
framework:
messenger:
buses:
messenger.bus.default:
default_middleware: false
middleware:
# ...
- 'messenger.middleware.doctrine_clear_entity_manager'
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:framework="http://symfony.com/schema/dic/symfony"
xsi:schemaLocation="http://symfony.com/schema/dic/services
https://symfony.com/schema/dic/services/services-1.0.xsd
http://symfony.com/schema/dic/symfony
https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
id="messenger.middleware.doctrine_clear_entity_manager"/>
name="messenger.bus.default" default-middleware="false"/>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// config/packages/messenger.php
$container->loadFromExtension('framework', [
'messenger' => [
'buses' => [
'messenger.bus.default' => [
'middleware' => [
// ...
'messenger.middleware.doctrine_clear_entity_manager',
],
'default_middleware' => false,
],
],
],
]);
The first advantage of this middleware is that it reduces the memory consumption
when handling messages in long-running processes. The second advantage is that
it prevents unexpected side-effects. For example, in the case of an user account
recovery process (where an email is sent asynchronously with Messenger and AMQP),
if the email address is updated after the first try, the second email is sent to
the old email address. Using this middleware will solve that problem.
Be trained by Symfony experts
- 2019-10-21 Lyon
- 2019-10-28 Berlin
- 2019-10-28 Berlin
[Less]
|
Posted
about 5 years
ago
by
Javier Eguiluz
Contributed by
Jan Schädlich
in #31351.
The Type constraint included in the Validator component validates that a
given value is of a
... [More]
specific data type. This type can be any of the
valid PHP types, any of the PHP ctype functions (e.g. alnum, alpha,
digit, etc.) and also the FQCN of any class:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// src/Entity/Author.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Author
{
/**
* @Assert\Type("Ramsey\Uuid\UuidInterface")
*/
protected $id;
/**
* @Assert\Type("string")
*/
protected $firstName;
// ...
}
Starting from Symfony 4.4, the checked type can be an array of types, so
you can validate that the given value type is one of several possible types. In
the following example, the $accessCode property can contain only letters or
only digits, but not both:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// src/Entity/Author.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Author
{
// ...
/**
* @Assert\Type(type={"alpha", "digit"})
*/
protected $accessCode;
}
Be trained by Symfony experts
- 2019-10-21 Lyon
- 2019-10-28 Berlin
- 2019-10-28 Berlin
[Less]
|
Posted
about 5 years
ago
by
Javier Eguiluz
This week, Symfony 3.4.32 and 4.3.5 maintenance versions were released. Meanwhile, the upcoming Symfony 4.4 version improved the syntax for defining method calls in YAML, improved performance of filesystem-based caches and allowed to omit the event
... [More]
name when registering listeners.
Symfony development highlights
3.4 changelog:
7432601: [Validator] fixed ValidValidator group cascading usage
fefb2ff: [Dotenv] search variable values in ENV first then env file
a8a4aad: [HttpFoundation] added plus character + to legal mime subtype
1201085: [Cache] fixed TagAwareAdapter returning invalid cache
9869754: [Validator] added the missing Swedish translations
c281b3b: [Validator] added the missing Norwegian Bokmål translations
49ad46e: [VarDumper] fixed resetting the "bold" state in CliDumper
1201085: [Cache] fixed TagAwareAdapter returning invalid cache
4.3 changelog:
bee0056: [HttpClient] fixed exploding values of headers
38b3dc8: [Messenger] ensure auto setup in DoctrineTransport is only done once
4223a5b: [HttpKernel] fix to populate $dotenvVars in data collector when not using putenv()
0d49141: [Form] preserved microseconds and used \DateTime::createFromImmutable() when available
49dfa8a: [Cache] clean tags folder on invalidation
ac422db: [FrameworkBundle] allowed to set SameSite config to 'none'
6f58438: [Cache] removed implicit dependency on symfony/filesystem
585a7a4: [HttpClient] send Accept: / by default and remove it when needed
76f44df: [Cache] ignored unserialization failures in AbstractTagAwareAdapter::doDelete()
b17ebdf: [DependencyInjection] added extra type check to php dumper
4.4 changelog:
4364850: [Intl] updated the ICU data to 65.1
b43f255: [VarDumper] added a support for casting Ramsey/Uuid
ce7c0b4: [Messenger] allowed to configure the db index on Redis transport
1998814: [HttpClient] async HTTPlug client
62216ea: added types to constructors and private/final/internal methods
7db5be6: [DependencyInjection] enabled improved syntax for defining method calls in YAML
0094884: [EventDispatcher] allowed to omit the event name when registering listeners
41dfd98: [Cache] improved performance of pruning for fs-based adapters
1c81349: keeping backward compatibility with legacy FlattenException usage
28f9536: [Cache] added TagAwareMarshaller to optimize data storage when using AbstractTagAwareAdapter
38b9a27: [ErrorHandler] reworked fatal errors
a84ec3a: [Mailer] added ReplyTo option for PostmarkApiTransport
0e84d3d: [Cache] fixed 2RTT + race condition in AbstractTagAwareAdapter::deleteItems()
211c651: [HttpClient] resolved promise chains on HttplugClient::wait()
Master changelog:
2dba6e7: [String] renamed core classes to Byte/CodePoint/UnicodeString
f6d207c: [Console] replaced posix_isatty with cross-platform and always available stream_isatty
90ca602: [String] added $lastGlue argument to join() methods
Symfony Binary
The Symfony binary, which provides tools for
developing Symfony applications in your local machine, released its new
4.7.2 and
4.7.3 with the following changes:
Disable interactivity in CI (even if they expose themselves as a TTY)
Fix the use of API Tokens requests new OAuth token for each request
Add a warning when the local CA should be regenerated
Fix server:ca:install --force does not properly regenerate CA
Add --renew flag to server:ca:install to force CA regeneration
Fix server:ca:install does not re-install certificate when using --force flag
Add proxy:domain:detach
Add attached domain names in the output of server:status
Newest issues and pull requests
[Security] Add sudo mode
[Messenger][RFC] Improve Messenger to support other app consuming/recieving the message
Make it easier to use multiple mailers
Optionally fail for deprecations in our various lint commands
They talked about us
How to use external services with the Symfony Validator
Deploy a Symfony application with AWS Lambda: a quick guide
Symfony 4 is the new Boss in PHP Framework
Nuevo en Symfony 4.4: Firmando y encriptando emails
Symfony. Integrando el componente Messenger con RabbitMQ
Nuevo en Symfony 4.4: Nuevos métodos para filtrar HTML en los tests
Symfony 4: un framework uniquement MVC ?
Call to Action
Give Symfony a star on GitHub
Follow Symfony on Twitter and retweet this article.
Subscribe to the Symfony blog RSS and never miss a Symfony story again.
Be trained by Symfony experts
- 2019-10-21 Lyon
- 2019-10-28 Berlin
- 2019-10-28 Berlin
[Less]
|
Posted
about 5 years
ago
by
Javier Eguiluz
This week, Symfony 3.4.32 and 4.3.5 maintenance versions were released. Meanwhile, the upcoming Symfony 4.4 version improved the syntax for defining method calls in YAML, improved performance of filesystem-based caches and allowed to omit the event
... [More]
name when registering listeners.
Symfony development highlights
3.4 changelog:
7432601: [Validator] fixed ValidValidator group cascading usage
fefb2ff: [Dotenv] search variable values in ENV first then env file
a8a4aad: [HttpFoundation] added plus character + to legal mime subtype
1201085: [Cache] fixed TagAwareAdapter returning invalid cache
9869754: [Validator] added the missing Swedish translations
c281b3b: [Validator] added the missing Norwegian Bokmål translations
49ad46e: [VarDumper] fixed resetting the "bold" state in CliDumper
1201085: [Cache] fixed TagAwareAdapter returning invalid cache
4.3 changelog:
bee0056: [HttpClient] fixed exploding values of headers
38b3dc8: [Messenger] ensure auto setup in DoctrineTransport is only done once
4223a5b: [HttpKernel] fix to populate $dotenvVars in data collector when not using putenv()
0d49141: [Form] preserved microseconds and used \DateTime::createFromImmutable() when available
49dfa8a: [Cache] clean tags folder on invalidation
ac422db: [FrameworkBundle] allowed to set SameSite config to 'none'
6f58438: [Cache] removed implicit dependency on symfony/filesystem
585a7a4: [HttpClient] send Accept: / by default and remove it when needed
76f44df: [Cache] ignored unserialization failures in AbstractTagAwareAdapter::doDelete()
b17ebdf: [DependencyInjection] added extra type check to php dumper
4.4 changelog:
4364850: [Intl] updated the ICU data to 65.1
b43f255: [VarDumper] added a support for casting Ramsey/Uuid
ce7c0b4: [Messenger] allowed to configure the db index on Redis transport
1998814: [HttpClient] async HTTPlug client
62216ea: added types to constructors and private/final/internal methods
7db5be6: [DependencyInjection] enabled improved syntax for defining method calls in YAML
0094884: [EventDispatcher] allowed to omit the event name when registering listeners
41dfd98: [Cache] improved performance of pruning for fs-based adapters
1c81349: keeping backward compatibility with legacy FlattenException usage
28f9536: [Cache] added TagAwareMarshaller to optimize data storage when using AbstractTagAwareAdapter
38b9a27: [ErrorHandler] reworked fatal errors
a84ec3a: [Mailer] added ReplyTo option for PostmarkApiTransport
0e84d3d: [Cache] fixed 2RTT + race condition in AbstractTagAwareAdapter::deleteItems()
211c651: [HttpClient] resolved promise chains on HttplugClient::wait()
Master changelog:
2dba6e7: [String] renamed core classes to Byte/CodePoint/UnicodeString
f6d207c: [Console] replaced posix_isatty with cross-platform and always available stream_isatty
90ca602: [String] added $lastGlue argument to join() methods
Symfony Binary
The Symfony binary, which provides tools for
developing Symfony applications in your local machine, released its new
4.7.2 and
4.7.3 with the following changes:
Disable interactivity in CI (even if they expose themselves as a TTY)
Fix the use of API Tokens requests new OAuth token for each request
Add a warning when the local CA should be regenerated
Fix server:ca:install --force does not properly regenerate CA
Add --renew flag to server:ca:install to force CA regeneration
Fix server:ca:install does not re-install certificate when using --force flag
Add proxy:domain:detach
Add attached domain names in the output of server:status
Newest issues and pull requests
[Security] Add sudo mode
[Messenger][RFC] Improve Messenger to support other app consuming/recieving the message
Make it easier to use multiple mailers
Optionally fail for deprecations in our various lint commands
They talked about us
How to use external services with the Symfony Validator
Deploy a Symfony application with AWS Lambda: a quick guide
Symfony 4 is the new Boss in PHP Framework
Nuevo en Symfony 4.4: Firmando y encriptando emails
Symfony. Integrando el componente Messenger con RabbitMQ
Nuevo en Symfony 4.4: Nuevos métodos para filtrar HTML en los tests
Symfony 4: un framework uniquement MVC ?
Call to Action
Give Symfony a star on GitHub
Follow Symfony on Twitter and retweet this article.
Subscribe to the Symfony blog RSS and never miss a Symfony story again.
Be trained by Symfony experts
- 2019-10-14 Clichy
- 2019-10-21 Lyon
- 2019-10-28 Berlin
[Less]
|
Posted
over 5 years
ago
by
Javier Eguiluz
Contributed by
Grégoire Pineau
in #33144.
The DomCrawler component is mostly used in Symfony applications via
functional tests, to filter
... [More]
the DOM nodes of HTML/XML documents. The methods
provided by DomCrawler were originally inspired by jQuery, such as eq(),
first(), children(), nextAll(), etc.
In Symfony 4.4 we've added three new methods frequently requested by the
community: matches(), closest() and outerHtml(). Consider the
following HTML snippet:
1
2
3
4
5
6
7
8
9
10
11
12
13
<html lang="en">
<body>
<div class="class-1">
<h1 class="class-1">Lorem Ipsumh1>
<ul class="class-2 class-3" id="id-1">
<li>1li>
<li class="class-4">2li>
<li>3li>
ul>
div>
body>
html>
The matches(string $selector) method returns true if the node matches
the given CSS selector:
1
2
$crawler->filter('#id-1')->matches('.class-3'); // true
$crawler->filter('#id-1')->matches('.class-4'); // false
The closest(string $selector) method returns the first ancestor of the node
that matches the given CSS selector:
1
2
3
// returns the div.class-1 node and NOT the h1.class-1 node because h1 is
// a sibling and not an ancestor of ul#id-1
$crawler->filter('#id-1')->closest('.class-1');
The outerHtml() method returns the whole HTML content of the node, including
its own tags:
1
2
3
4
5
// returns '123'
$crawler->filter('#id-1')->outerHtml();
// returns '123'
$crawler->filter('#id-1')->html();
Removing all Extra White Space¶
Contributed by
Hamza Amrouche
in #32440.
Dealing with white spaces is pretty annoying when checking the contents of some
HTML tag. For example, with the following HTML snippet:
1
2
3
4
5
<div class="class-1">
<h2>
Some Title Text
h2>
div>
The following test will fail because of all the "n" and spaces that surround
the title text:
1
2
// this fails because of the extra white spaces
$this->assertSame('Some Title Text', $crawler->filter('.class-1')->text());
In Symfony 4.3 we introduced the assertSelectorTextContains() method to
help in these situations, but starting from Symfony 4.4, you can also pass
true as the second optional argument of text() to remove all extra white
spaces:
1
2
// this passes because all extra white spaces are removed
$this->assertSame('Some Title Text', $crawler->filter('.class-1')->text(null, true));
In addition to trimming white spaces from the beginning and the end of the
string, this feature also replaces two or more white spaces inside the contents
by a single white space. For example, if the original text is
foo bar baz, it returns foo bar baz.
Be trained by Symfony experts
- 2019-10-21 Lyon
- 2019-10-28 Berlin
- 2019-10-28 Berlin
[Less]
|
Posted
over 5 years
ago
by
Javier Eguiluz
Contributed by
Grégoire Pineau
in #33144.
The DomCrawler component is mostly used in Symfony applications via
functional tests, to filter
... [More]
the DOM nodes of HTML/XML documents. The methods
provided by DomCrawler were originally inspired by jQuery, such as eq(),
first(), children(), nextAll(), etc.
In Symfony 4.4 we've added three new methods frequently requested by the
community: matches(), closest() and outerHtml(). Consider the
following HTML snippet:
1
2
3
4
5
6
7
8
9
10
11
12
13
<html lang="en">
<body>
<div class="class-1">
<h1 class="class-1">Lorem Ipsumh1>
<ul class="class-2 class-3" id="id-1">
<li>1li>
<li class="class-4">2li>
<li>3li>
ul>
div>
body>
html>
The matches(string $selector) method returns true if the node matches
the given CSS selector:
1
2
$crawler->filter('#id-1')->matches('.class-3'); // true
$crawler->filter('#id-1')->matches('.class-4'); // false
The closest(string $selector) method returns the first ancestor of the node
that matches the given CSS selector:
1
2
3
// returns the div.class-1 node and NOT the h1.class-1 node because h1 is
// a sibling and not an ancestor of ul#id-1
$crawler->filter('#id-1')->closest('.class-1');
The outerHtml() method returns the whole HTML content of the node, including
its own tags:
1
2
3
4
5
// returns '123'
$crawler->filter('#id-1')->outerHtml();
// returns '123'
$crawler->filter('#id-1')->html();
Removing all Extra White Space¶
Contributed by
Hamza Amrouche
in #32440.
Dealing with white spaces is pretty annoying when checking the contents of some
HTML tag. For example, with the following HTML snippet:
1
2
3
4
5
<div class="class-1">
<h2>
Some Title Text
h2>
div>
The following test will fail because of all the "n" and spaces that surround
the title text:
1
2
// this fails because of the extra white spaces
$this->assertSame('Some Title Text', $crawler->filter('.class-1')->text());
In Symfony 4.3 we introduced the assertSelectorTextContains() method to
help in these situations, but starting from Symfony 4.4, you can also pass
true as the second optional argument of text() to remove all extra white
spaces:
1
2
// this passes because all extra white spaces are removed
$this->assertSame('Some Title Text', $crawler->filter('.class-1')->text(null, true));
In addition to trimming white spaces from the beginning and the end of the
string, this feature also replaces two or more white spaces inside the contents
by a single white space. For example, if the original text is
foo bar baz, it returns foo bar baz.
Be trained by Symfony experts
- 2019-10-14 Clichy
- 2019-10-21 Lyon
- 2019-10-28 Berlin
[Less]
|
Posted
over 5 years
ago
by
Javier Eguiluz
Contributed by
Sebastiaan Stok
in #30981.
Symfony 4.4 will be released in November 2019. This is the first article of
the series that
... [More]
shows the most important new features introduced by this Symfony
version.
The new Mailer and Mime components were introduced in Symfony 4.3 to
replace the previous solution based on SwiftMailer. In Symfony 4.4 we've
improved them with new features to allow signing and encrypting email messages
using the S/MIME standard.
Signing a message improves its integrity because it includes a digital
signature of the hash of the entire email contents, ensuring that the original
contents haven't been modified:
1
2
3
4
5
6
7
8
use Symfony\Component\Mime\Crypto\SMimeSigner;
use Symfony\Component\Mime\Email;
$email = (new Email())->from('...')->to('...')->html('...');
$signer = new SMimeSigner('/path/to/certificate.crt', '/path/to/certificate-private-key.key');
$signedEmail = $signer->sign($email);
// now use the Mailer to send this $signedEmail instead of the original $email
Encrypting a message improves its security because its contents, including
any attachments, can only be read if you have the private key associated to the
public key used to encrypt them:
1
2
3
4
5
6
7
8
use Symfony\Component\Mime\Crypto\SMimeEncrypter;
use Symfony\Component\Mime\Email;
$email = (new Email())->from('...')->to('...')->html('...');
$encrypter = new SMimeEncrypter('/path/to/certificate.crt');
$encryptedEmail = $encrypter->encrypt($email);
// now use the Mailer to send this $encryptedEmail instead of the original $email
Read the Signing and Encrypting Messages article in the official Symfony
documentation to learn more about this feature.
Be trained by Symfony experts
- 2019-10-14 Clichy
- 2019-10-21 Lyon
- 2019-10-28 Berlin
[Less]
|
Posted
over 5 years
ago
by
Javier Eguiluz
Contributed by
Sebastiaan Stok
in #30981.
Symfony 4.4 will be released in November 2019. This is the first article of
the series that
... [More]
shows the most important new features introduced by this Symfony
version.
The new Mailer and Mime components were introduced in Symfony 4.3 to
replace the previous solution based on SwiftMailer. In Symfony 4.4 we've
improved them with new features to allow signing and encrypting email messages
using the S/MIME standard.
Signing a message improves its integrity because it includes a digital
signature of the hash of the entire email contents, ensuring that the original
contents haven't been modified:
1
2
3
4
5
6
7
8
use Symfony\Component\Mime\Crypto\SMimeSigner;
use Symfony\Component\Mime\Email;
$email = (new Email())->from('...')->to('...')->html('...');
$signer = new SMimeSigner('/path/to/certificate.crt', '/path/to/certificate-private-key.key');
$signedEmail = $signer->sign($email);
// now use the Mailer to send this $signedEmail instead of the original $email
Encrypting a message improves its security because its contents, including
any attachments, can only be read if you have the private key associated to the
public key used to encrypt them:
1
2
3
4
5
6
7
8
use Symfony\Component\Mime\Crypto\SMimeEncrypter;
use Symfony\Component\Mime\Email;
$email = (new Email())->from('...')->to('...')->html('...');
$encrypter = new SMimeEncrypter('/path/to/certificate.crt');
$encryptedEmail = $encrypter->encrypt($email);
// now use the Mailer to send this $encryptedEmail instead of the original $email
Read the Signing and Encrypting Messages article in the official Symfony
documentation to learn more about this feature.
Be trained by Symfony experts
- 2019-10-21 Lyon
- 2019-10-28 Berlin
- 2019-10-28 Berlin
[Less]
|
Posted
over 5 years
ago
by
Fabien Potencier
Symfony 4.3.5 has just been released. Here is a list of the most
important changes:
bug #33742 [Crawler] document $default as string|null (@nicolas-grekas)
bug #32308 [Messenger] DoctrineTransport: ensure auto setup is only done once (@bendavies)
... [More]
bug #33871 [HttpClient] bugfix exploding values of headers (@michaljusiega)
bug #33834 [Validator] Fix ValidValidator group cascading usage (@fancyweb)
bug #33863 [Routing] gracefully handle docre _root ini setting (@nicolas-grekas)
bug #33846 [Cache] give 100ms before starting the expiration countdown (@nicolas-grekas)
bug #33853 [HttpClient] fix "n _proxy" option ignored in NativeHttpClient (@Harry-Dunne)
bug #33841 [VarDumper] fix dumping uninitialized SplFileInfo (@nicolas-grekas)
bug #33842 [Cache] fix logger usage in CacheTrait::doGet() (@nicolas-grekas)
bug #33835 [Workflow] Fixed BC break on WorkflowInterface (@lyrixx)
bug #33799 [Security]: Don't let falsy usernames slip through impersonation (@j4nr6n)
bug #33814 [HttpFoundation] Check if data passed to SessionBagProxy::initialize is an array (@mynameisbogdan)
bug #33744 [DI] Add CSV env var processor tests / support PHP 7.4 (@ro0NL)
bug #33805 [FrameworkBundle] Fix wrong returned status code in ConfigDebugCommand (@jschaedl)
bug #33781 [AnnotationCacheWarmer] add RedirectController to annotation cache (@jenschude)
bug #33777 Fix the :only-of-type pseudo class selector (@jakzal)
bug #32051 [Serializer] Add CsvEncoder tests for PHP 7.4 (@ro0NL)
feature #33776 Copy phpunit.xsd to a predictable path (@julienfalque)
bug #33759 [Security/Http] fix parsing X509 emailAddress (@nicolas-grekas)
bug #33733 [Serializer] fix denormalization of string-arrays with only one element (@mkrauser)
bug #33754 [Cache] fix known tag versions ttl check (@SwenVanZanten)
bug #33646 [HttpFoundation] allow additinal characters in not raw cookies (@marie)
bug #33748 [Console] Do not include hidden commands in suggested alternatives (@m-vo)
bug #33625 [DependencyInjection] Fix wrong exception when service is synthetic (@k0d3r1s)
bug #32979 [Messenger] return empty envelopes when RetryableException occurs (@surikman)
bug #32522 [Validator] Accept underscores in the URL validator, as the URL will load (@battye)
bug #32437 Fix toolbar load when GET params are present in _wdt" route (@Molkobain)
bug #32925 [Translation] Collect original locale in case of fallback translation (@digilist)
bug #33691 [HttpClient] fix race condition when reading response with informational status (@nicolas-grekas)
bug #33727 [HttpClient] workaround bad Content-Length sent by old libcurl (@nicolas-grekas)
bug #31198 [FrameworkBundle] Fix framework bundle lock configuration not working as expected (@HypeMC)
bug #33719 [Cache] dont override native Memcached options (@nicolas-grekas)
bug #33703 [Cache] fail gracefully when locking is not supported (@nicolas-grekas)
bug #33713 Fix exceptions (PDOException) error code type (@fruty)
bug #32335 [Form] Names for buttons should start with lowercase (@mcfedr)
bug #33706 [Mailer][Messenger] ensure legacy event dispatcher compatibility (@xabbuh)
bug #33688 Add missing ro _attr option to FormType (@mcsky)
bug #33693 [Security] use LegacyEventDispatcherProxy (@dmaicher)
bug #33675 [PhpUnit] Fix usleep mock return value (@fabpot)
bug #33652 [Cache] skip igbinary on PHP 7.4.0 (@nicolas-grekas)
bug #33643 [HttpClient] fix throwing HTTP exceptions when the 1st chunk is emitted (@nicolas-grekas)
bug #33618 fix tests depending on other components' tests (@xabbuh)
bug #33626 [PropertyInfo] ensure compatibility with type resolver 0.5 (@xabbuh)
bug #33620 [Twig] Fix Twig config extra keys (@fabpot)
bug #33600 [Messenger] Fix exception message of failed message is dropped on retry (@tienvx)
bug #33601 [HttpClient] Add default value for Accept header (@numerogeek)
bug #33340 [Finder] Adjust regex to correctly match comments in gitignore contents (@Jeroeny)
bug #33588 [PropertyInfo] ensure compatibility with type resolver 0.5 (@xabbuh)
bug #33575 [WebProfilerBundle] Fix time panel legend buttons (@fancyweb)
bug #33571 [Inflector] add support 'see' to 'ee' for singularize 'fees' to 'fee' (@maxhelias)
bug #32763 [Console] Get dimensions from stty on windows if possible (@rtek)
bug #33570 Fixed cache pools affecting each other due to an overwritten seed variable (@roed)
bug #33517 [Yaml] properly catch legacy tag syntax usages (@xabbuh)
bug #33546 [DependencyInjection] Accept existing interfaces as valid named args (@fancyweb)
bug #33547 [HttpClient] Re-enable Server Push support (@dunglas)
bug #33521 Fixed incompatibility between ServiceSubscriberTrait and classes with protected $container property (@a-menshchikov)
bug #33518 [Yaml] don't dump a scalar tag value on its own line (@xabbuh)
bug #33505 [HttpClient] fallbackto CURLMOP _MAXCONNECTS when CURLMOP _MA _HOS _CONNECTIONS is not available (@nicolas-grekas)
bug #32818 [HttpKernel] Fix getFileLinkFormat() to avoid returning the wrong URL in Profiler (@Arman-Hosseini)
bug #33487 [HttpKernel] Fix Apache mo _expires Session Cache-Control issue (@pbowyer)
bug #33469 [FrameworkBundle] Fixed suggested package for missing server:dump command (@lyrixx)
bug #31964 [Router] routing cache crash when using generato _class (@dFayet)
bug #33481 [Messenger] fix empty amqp body returned as false (@Tobion)
bug #33387 [Mailer] maintain sender/recipient name in SMTP envelopes (@xabbuh)
bug #33449 Fix gmail relay (@Beno!t POLASZEK)
bug #33391 [HttpClient] fix support for 103 Early Hints and other informational status codes (@nicolas-grekas)
bug #33444 [HttpClient] improve handling of HTTP/2 PUSH, disable it by default (@nicolas-grekas)
bug #33435 [Validator] Only handle numeric values in DivisibleBy (@fancyweb)
bug #33437 Fix #33427 (@sylfabre)
bug #33439 [Validator] Sync string to date behavior and throw a better exception (@fancyweb)
bug #33436 [DI] fix support for "!tagge _locator foo" (@nicolas-grekas)
bug #32903 [PHPUnit Bridge] Avoid registering listener twice (@alexpott)
bug #33432 [Mailer] Fix Mailgun support when a response is not JSON as expected (@fabpot)
bug #33402 [Finder] Prevent unintentional file locks in Windows (@jspringe)
bug #33376 [Mailer] Remove the default dispatcher in AbstractTransport (@fabpot)
bug #33357 [FrameworkBundle] Fix about command not showing .env vars (@brentybh)
bug #33396 Fix #33395 PHP 5.3 compatibility (@kylekatarnls)
bug #33363 [Routing] fix static route reordering when a previous dynamic route conflicts (@nicolas-grekas)
bug #33385 [Console] allow Command::getName() to return null (@nicolas-grekas)
bug #33353 Return null as Expire header if it was set to null (@danrot)
bug #33382 [ProxyManager] remove ProxiedMethodReturnExpression polyfill (@nicolas-grekas)
bug #33377 [Yaml] fix dumping not inlined scalar tag values (@xabbuh)
Want to upgrade to this new release? Fortunately, because Symfony protects
backwards-compatibility very closely, this should be quite easy.
Read our upgrade
documentation to learn more.
Want to be notified whenever a new Symfony release is published? Or when a
version is not maintained anymore? Or only when a security issue is fixed?
Consider subscribing to the Symfony Roadmap Notifications.
Be trained by Symfony experts
- 2019-10-14 Clichy
- 2019-10-21 Lyon
- 2019-10-28 Berlin
[Less]
|
Posted
over 5 years
ago
by
Fabien Potencier
Symfony 4.3.5 has just been released. Here is a list of the most
important changes:
bug #33742 [Crawler] document $default as string|null (@nicolas-grekas)
bug #32308 [Messenger] DoctrineTransport: ensure auto setup is only done once (@bendavies)
... [More]
bug #33871 [HttpClient] bugfix exploding values of headers (@michaljusiega)
bug #33834 [Validator] Fix ValidValidator group cascading usage (@fancyweb)
bug #33863 [Routing] gracefully handle docre _root ini setting (@nicolas-grekas)
bug #33846 [Cache] give 100ms before starting the expiration countdown (@nicolas-grekas)
bug #33853 [HttpClient] fix "n _proxy" option ignored in NativeHttpClient (@Harry-Dunne)
bug #33841 [VarDumper] fix dumping uninitialized SplFileInfo (@nicolas-grekas)
bug #33842 [Cache] fix logger usage in CacheTrait::doGet() (@nicolas-grekas)
bug #33835 [Workflow] Fixed BC break on WorkflowInterface (@lyrixx)
bug #33799 [Security]: Don't let falsy usernames slip through impersonation (@j4nr6n)
bug #33814 [HttpFoundation] Check if data passed to SessionBagProxy::initialize is an array (@mynameisbogdan)
bug #33744 [DI] Add CSV env var processor tests / support PHP 7.4 (@ro0NL)
bug #33805 [FrameworkBundle] Fix wrong returned status code in ConfigDebugCommand (@jschaedl)
bug #33781 [AnnotationCacheWarmer] add RedirectController to annotation cache (@jenschude)
bug #33777 Fix the :only-of-type pseudo class selector (@jakzal)
bug #32051 [Serializer] Add CsvEncoder tests for PHP 7.4 (@ro0NL)
feature #33776 Copy phpunit.xsd to a predictable path (@julienfalque)
bug #33759 [Security/Http] fix parsing X509 emailAddress (@nicolas-grekas)
bug #33733 [Serializer] fix denormalization of string-arrays with only one element (@mkrauser)
bug #33754 [Cache] fix known tag versions ttl check (@SwenVanZanten)
bug #33646 [HttpFoundation] allow additinal characters in not raw cookies (@marie)
bug #33748 [Console] Do not include hidden commands in suggested alternatives (@m-vo)
bug #33625 [DependencyInjection] Fix wrong exception when service is synthetic (@k0d3r1s)
bug #32979 [Messenger] return empty envelopes when RetryableException occurs (@surikman)
bug #32522 [Validator] Accept underscores in the URL validator, as the URL will load (@battye)
bug #32437 Fix toolbar load when GET params are present in _wdt" route (@Molkobain)
bug #32925 [Translation] Collect original locale in case of fallback translation (@digilist)
bug #33691 [HttpClient] fix race condition when reading response with informational status (@nicolas-grekas)
bug #33727 [HttpClient] workaround bad Content-Length sent by old libcurl (@nicolas-grekas)
bug #31198 [FrameworkBundle] Fix framework bundle lock configuration not working as expected (@HypeMC)
bug #33719 [Cache] dont override native Memcached options (@nicolas-grekas)
bug #33703 [Cache] fail gracefully when locking is not supported (@nicolas-grekas)
bug #33713 Fix exceptions (PDOException) error code type (@fruty)
bug #32335 [Form] Names for buttons should start with lowercase (@mcfedr)
bug #33706 [Mailer][Messenger] ensure legacy event dispatcher compatibility (@xabbuh)
bug #33688 Add missing ro _attr option to FormType (@mcsky)
bug #33693 [Security] use LegacyEventDispatcherProxy (@dmaicher)
bug #33675 [PhpUnit] Fix usleep mock return value (@fabpot)
bug #33652 [Cache] skip igbinary on PHP 7.4.0 (@nicolas-grekas)
bug #33643 [HttpClient] fix throwing HTTP exceptions when the 1st chunk is emitted (@nicolas-grekas)
bug #33618 fix tests depending on other components' tests (@xabbuh)
bug #33626 [PropertyInfo] ensure compatibility with type resolver 0.5 (@xabbuh)
bug #33620 [Twig] Fix Twig config extra keys (@fabpot)
bug #33600 [Messenger] Fix exception message of failed message is dropped on retry (@tienvx)
bug #33601 [HttpClient] Add default value for Accept header (@numerogeek)
bug #33340 [Finder] Adjust regex to correctly match comments in gitignore contents (@Jeroeny)
bug #33588 [PropertyInfo] ensure compatibility with type resolver 0.5 (@xabbuh)
bug #33575 [WebProfilerBundle] Fix time panel legend buttons (@fancyweb)
bug #33571 [Inflector] add support 'see' to 'ee' for singularize 'fees' to 'fee' (@maxhelias)
bug #32763 [Console] Get dimensions from stty on windows if possible (@rtek)
bug #33570 Fixed cache pools affecting each other due to an overwritten seed variable (@roed)
bug #33517 [Yaml] properly catch legacy tag syntax usages (@xabbuh)
bug #33546 [DependencyInjection] Accept existing interfaces as valid named args (@fancyweb)
bug #33547 [HttpClient] Re-enable Server Push support (@dunglas)
bug #33521 Fixed incompatibility between ServiceSubscriberTrait and classes with protected $container property (@a-menshchikov)
bug #33518 [Yaml] don't dump a scalar tag value on its own line (@xabbuh)
bug #33505 [HttpClient] fallbackto CURLMOP _MAXCONNECTS when CURLMOP _MA _HOS _CONNECTIONS is not available (@nicolas-grekas)
bug #32818 [HttpKernel] Fix getFileLinkFormat() to avoid returning the wrong URL in Profiler (@Arman-Hosseini)
bug #33487 [HttpKernel] Fix Apache mo _expires Session Cache-Control issue (@pbowyer)
bug #33469 [FrameworkBundle] Fixed suggested package for missing server:dump command (@lyrixx)
bug #31964 [Router] routing cache crash when using generato _class (@dFayet)
bug #33481 [Messenger] fix empty amqp body returned as false (@Tobion)
bug #33387 [Mailer] maintain sender/recipient name in SMTP envelopes (@xabbuh)
bug #33449 Fix gmail relay (@Beno!t POLASZEK)
bug #33391 [HttpClient] fix support for 103 Early Hints and other informational status codes (@nicolas-grekas)
bug #33444 [HttpClient] improve handling of HTTP/2 PUSH, disable it by default (@nicolas-grekas)
bug #33435 [Validator] Only handle numeric values in DivisibleBy (@fancyweb)
bug #33437 Fix #33427 (@sylfabre)
bug #33439 [Validator] Sync string to date behavior and throw a better exception (@fancyweb)
bug #33436 [DI] fix support for "!tagge _locator foo" (@nicolas-grekas)
bug #32903 [PHPUnit Bridge] Avoid registering listener twice (@alexpott)
bug #33432 [Mailer] Fix Mailgun support when a response is not JSON as expected (@fabpot)
bug #33402 [Finder] Prevent unintentional file locks in Windows (@jspringe)
bug #33376 [Mailer] Remove the default dispatcher in AbstractTransport (@fabpot)
bug #33357 [FrameworkBundle] Fix about command not showing .env vars (@brentybh)
bug #33396 Fix #33395 PHP 5.3 compatibility (@kylekatarnls)
bug #33363 [Routing] fix static route reordering when a previous dynamic route conflicts (@nicolas-grekas)
bug #33385 [Console] allow Command::getName() to return null (@nicolas-grekas)
bug #33353 Return null as Expire header if it was set to null (@danrot)
bug #33382 [ProxyManager] remove ProxiedMethodReturnExpression polyfill (@nicolas-grekas)
bug #33377 [Yaml] fix dumping not inlined scalar tag values (@xabbuh)
Want to upgrade to this new release? Fortunately, because Symfony protects
backwards-compatibility very closely, this should be quite easy.
Read our upgrade
documentation to learn more.
Want to be notified whenever a new Symfony release is published? Or when a
version is not maintained anymore? Or only when a security issue is fixed?
Consider subscribing to the Symfony Roadmap Notifications.
Be trained by Symfony experts
- 2019-10-21 Lyon
- 2019-10-28 Berlin
- 2019-10-28 Berlin
[Less]
|