Quantcast
Channel: Symfony Blog
Viewing all 3049 articles
Browse latest View live

Symfony Local Web Server, 6 months later

$
0
0

The new Symfony binary, announced duringSymfonyCon Lisbon 2018, is getting better by the day.

If you haven't heard about the Symfony local web server yet, you can discover it in the official documentation

With 30+ releases since the first public release, we have been hard at work fixing bugs and adding features.

We now auto-detect more PHP versions installed on your machine (MacOS, Windows, and Linux) from many different vendors (in addition to the PHP binaries located under your $PATH). In no particular order: Homebrew, phpenv, Liip PHP, Ondrej PPA, Remi's RPM repository, XAMPP, MAMP, phpbrew, Cygwin, Chocolatey, WAMP, and MacPorts.

We claimed support for HTTP/2, but this was partially true. We falled back to HTTP/1 when you were using local domain names. Not anymore. HTTP/2 is now supported even when using nice domain names ending with .wip.

One convenient feature of the local web server is the ability to run different versions of PHP depending on the project (via a .php-version file for instance). That also works on the console when running symfony run script.php. In addition, it also automatically reads environment variables (from .env files). That's very useful when running a script that does not use the Symfony Dotenv component. Use symfony php script.php and done. The same features are now available for many commands: pecl, pear,php-config, php-fpm, php-cgi, composer, and phpdbg.

By default, the local web server reads the Symfony environment (dev or prod for instance) from your .env configuration. You can force the production environment by running symfony local:server:prod (disable it viasymfony local:server:prod --off).

Pure HTML websites or SPAs can also use the local web server; no need for something else.

Last but not least, we have added support for Docker. We think this provides the ideal local working environment: local native PHP performance with local domains, TLS, HTTP2, and logs aggregation and service management via Docker Compose (or SymfonyCloud). Integration is almost automatic if you are exposing the ports of your services. The services are then exposed as environment variables to the Symfony application. The documentation explains how you can do it. One nice feature is that ports being random on the host, you can work on several projects using Docker without having to shutdown one to work on the next. Having random ports works because the environment variables are exposed automatically by the symfony CLI.

Also note that checking for vulnerabilities in your project should now be done via the symfony CLI as well, more specifically via the security:check command. It does the checks locally without using the HTTP API (it clones thesecurity advisories database to determine issues). That's ideal to use in your CI as well.


Be trained by Symfony experts - 2019-07-8 Cologne - 2019-07-8 Cologne - 2019-07-8 Clichy

SymfonyCon Amsterdam 2019: the first part of the conference schedule is online!

$
0
0

Logo of the SymfonyCon Amsterdam 2019

SymfonyCon Amsterdam 2019, the annual international Symfony reunion, will take place at the Beurs van Berlage downtown Amsterdam from November 19th to 23rd. The entire event is composed of:

  • November 19th-20th: 2-day pre-conference workshops
  • November 21st-22nd: 2-day conference
  • November 23rd: 1-day hackday

We’ve announced last week all the pre-conference workshop topics, read our blog post to find out the trainings we offer before the conference! Get trained on the latest features of Symfony, PHP and its ecosystem just before the conference. You can choose one workshop topic per day among 5 workshops offered. Create now your own pre-conference workshops combo, select your workshop topic per day and book your workshop registration. Pre-conference workshop tickets are not sold separately from conference tickets.

The combo ticket price includes the 2-day workshops, 2-day conference, the hackday (breaks and lunches during all the 5 days are included). Get 20% off the global price for workshops and conference days with the combo ticket. Improve your Symfony and PHP skills before the conference, register now!

The conference schedule will be divided into 4 tracks: advanced Symfony track, beginner Symfony track, PHP track and an Unconference track. We’re still reviewing all the talk proposals we received for the conference and we’d like to thank all the people who took the time to submit a talk proposal for the conference. We’ve just selected the first conference speakers and are very pleased to announce who they are! We’ll have the great pleasure to welcome on stage (in order of appearance on the conference schedule):

  • Fabien Potencier, Symfony founder/project lead, will be on stage for the Opening Keynote!
  • Benoit Jacquemont, will explain everything you need to know about "HTTP/3: It's all about the transport!". The announcement of HTTP/3 at the start of November 2018 may have come as a surprise for a lot of us. In this talk, we will explain why this version 3 of the HTTP protocol has been designed, especially around the latency topic. We will cover as well how technically this version works, and what it will bring to our applications, and what are the challenges that will need to be addressed, in order to fully benefit from this new version of the protocol that runs the Web.
  • Diana Ungaro Arnos, will speak about "PHP, Symfony and Security". The latest versions of PHP provide security tools and modern cryptography and Symfony itself make its efforts to deliver robust security features that are simple to implement. We'll learn about the latest language and framework initiatives in this regard and check out short and quick tips for boosting you application's security.
  • Julien Pauli, will talk about "A view in the PHP Virtual Machine. This talk is about how PHP works. We'll learn together how PHP compiles, optimizes then execute your scripts, both in Web environment and CLI apps. We'll dive into PHP's source code - written in C - to extract some parts of interest and study them to better understand PHP's behaviors as well as best practices in terms of performances (CPU cycles and memory allocations).
  • Tobias Schultze, will be on stage to speak about "Evolving with Symfony in a long-term project". This case study will explore the API architecture of Switzerland’s biggest retail company that has been in development for 7 years. We will see what has changed over the years, both in terms of coding practices and technologies. Besides Symfony, some of the technologies used are Cloudfoundry, Varnish, RabbitMQ and Elasticsearch. Let us find out which approaches proved to be successful and which didn’t work so well.
  • Zan Baldwin, will speak about "Crazy Fun Experiments with PHP (Not for Production)". I’ll show you the crazy things you can do in PHP with streams and autoloader overloading to write your own language features. I’ll also show you how you can supercharge your Symfony applications using aspect-orientated programming or encrypt source code on-the-fly using only PHP. As if that wasn’t enough, we’ll go even further and make PHP a polyglot language by importing esoteric language scripts!
  • Matthias Noback, will talk about "Hexagonal Architecture with Symfony". Symfony offers many excellent components for your web and console applications. In this talk I will explain an architectural style called "Hexagonal Architecture", which will help you structure your applications in such a way that you can focus most of your development effort on the core of your application, designing it in a way that makes its production code sustainable and easy to test.
  • Matthias Pigulla, will explain "HTTP Caching with Symfony 101". HTTP caching is a powerful technique to improve response times for site visitors, make more efficient use of bandwidth and reduce server load. We will have a look at the basic concepts, the different caching strategies and HTTP headers used to implement them. I will then show you a few ways how to implement HTTP level caching in your Symfony application, how to leverage the HTTP Cache included in the framework and resolve the mystery around ESI.
  • Magnus Nordlander, will speak about "How fitness helps you become a better developer". We often think of technical skills as the way to level up as developers, but we're not (yet) brains-in-a-vat. Our body and physical health are crucial to be able to work well as developers. In this talk I speak both about the science behind fitness and nutrition, and my personal journey of losing over 70 kgs, starting to go to the gym, how it affected me as a developer, as well as the shocking secret behind what happened to the Sound of Symfony podcast.

Check out the conference schedule! We'll soon announce the entire conference schedule, stay tuned!

We can't wait to meet you at SymfonyCon Amsterdam 2019, register now for the conference or for a combo pre-conference workshops and conference!

See you at the conference!


Be trained by Symfony experts - 2019-07-8 Cologne - 2019-07-8 Cologne - 2019-07-8 Clichy

A Week of Symfony #653 (1-7 July 2019)

$
0
0

This week, the upcoming Symfony 4.4 version improved the Length validation constraint to allow rejecting empty strings, the HttpClient component added support for NTLM authentication and the Panther component was updated to allow using the new BrowserKit assertions. Meanwhile, the SymfonyCon 2019 conference announced the first part of its schedule.

Symfony development highlights

This week, 93 pull requests were merged (70 in code and 23 in docs) and 39 issues were closed (19 in code and 20 in docs). Excluding merges, 36 authors made 1,497 additions and 567 deletions. See details for code and docs.

3.4 changelog:

  • db05791: [DependencyInjection] fixed processing of regular parameter bags by MergeExtensionConfigurationPass
  • a383649: [FrameworkBundle] reset cache pools between requests
  • 7f43681: [SecurityBundle] conditionally register services

4.2 changelog:

  • 26048bc: [FrameworkBundle] unconditionally register the DateIntervalNormalizer
  • c33c396: [Lock] stores must implement putOffExpiration
  • 8e07e77: [Messenger] don't pass objects as class name to ContainerBuilder::register

4.3 changelog:

  • b7a75e4: [Workflow] only decorate when an event dispatcher was passed
  • 51f01bd: [FrameworkBundle] deprecated the framework.templating option
  • 74bd8b6: [FrameworkBundle] fixing validation for messenger transports retry_strategy service key
  • 09e762e: [Messenger] fixed authentication for redis transport
  • c799fc8: [Messenger] fixed broken key normalization

4.4 changelog:

  • 7bd0a27: [Messenger] added support for auto trimming of redis streams
  • 70318b4: [HttpFoundation] drop support for ApacheRequest
  • 802dc1b: [Filesystem] deprecated calling isAbsolutePath with a null
  • 7b9c026: [Mailer] overwrite envelope sender and recipients from config
  • ea0656a: [HttpKernel] improved the error message when not defining the controller as a service but using construct parameters
  • 4e32643: [Validator] added a Length::$allowEmptyString option to reject empty strings
  • 6abaa8c: [Validator] deprecated non-string constraint violation codes
  • df13b50: [HttpClient] added support for NTLM authentication
  • 2452ef8: [PropertyInfo] added static cache to ContextFactory
  • 9b4f801: [FrameworkBundle] allow to use the BrowserKit assertions with Panther and API Platform's test client
  • b7c9fcf: [HttpFoundation] accept must take the lead for Request::getPreferredFormat()
  • e3927b6: [Messenger] use ConnectionRegistry instead of RegistryInterface
  • 0151279: [ErrorCatcher] pretty print JSON formatted errors
  • 08aa16f: [ErrorCatcher] fixed some escaping in error renderers
  • a672bbc: [FrameworkBundle] allow creating chained cache pools by providing several adapters
  • b515107: [FrameworkBundle] use default_locale as default value for translator.fallbacks
  • 42899cd: [FrameworkBundle] add autowiring alias for PSR-14

Master changelog:

  • f800d01: [Cache] finish type-hints
  • 393f9ae: [CSRF] add more parameter types
  • cc9778e: [Security, Guard] added type-hints to AuthenticatorInterface
  • b163a95: [Security] added type-hints to user providers
  • 7af0c73: [Security] added type-hints to password encoders
  • 6128276: [Security] added type-hints to auth providers, tokens and voters
  • 90c1603: [ExpressionLanguage] add type-hints whenever possible
  • bfabad4: [Config] finish adding parameter types
  • 7eb0912: [Process] replace docblocks by type-hints
  • e5adbe6: [PropertyAccess] add type-hints to public interfaces and classes
  • 78dc3c3: [Workflow] added parameter typhint where possible
  • 53e68f7: [Translator] add parameter type-hints where possible
  • 885a192: [WebProfilerBundle] add parameter type-hints where possible

Newest issues and pull requests

They talked about us

Upcoming Symfony Events

Call to Action


Be trained by Symfony experts - 2019-07-8 Cologne - 2019-07-8 Cologne - 2019-07-8 Clichy

A Week of Symfony #654 (8-14 July 2019)

$
0
0

This week, the upcoming Symfony 4.4 version worked on improving the progress bar redraws of the Console component, deprecated WebserverBundle in favor of the Symfony local web server and introduced a feature to make the bundle public dir configurable. Meanwhile, the upcoming Symfony 5.0 version added compatibility with Monolog 2.

Symfony development highlights

This week, 102 pull requests were merged (74 in code and 28 in docs) and 81 issues were closed (58 in code and 23 in docs). Excluding merges, 43 authors made 5,867 additions and 2,866 deletions. See details for code and docs.

3.4 changelog:

  • d92c9b8: [EventDispatcher] added tag kernel.rest on 'debug.event_dispatcher' service
  • 9fc8d2e: [Translator] load plurals from po files properly
  • feab919: [Translator] load plurals from mo files properly
  • 931965a: [HttpFoundation] don't assume port 0 for X-Forwarded-Port
  • fea98a8: [FrameworkBundle] inform the user when save_path will be ignored
  • 37756d3: [DependencyInjection] added tests to cover the possibility of having scalars as services
  • 5e839f4, bf466b1: [Validator] Updated Persian translations
  • 91f4752: [Debug] include found files in DebugClassLoader instead of requiring them

4.2 changelog:

  • 6b8d4aa: [Serializer] fixed AbstractObjectNormalizer ignores the property types of discriminated classes

4.3 changelog:

  • bb9251a: [Messenger] fixed publishing headers set on AmqpStamp
  • 94db7d4: [Messenger] support setting auto_setup from DSN in Doctrine Transport
  • 98bbc57: [SecurityBundle] fixed profiler dump for non-invokable security listeners
  • 70c7424: [FrameworkBundle] fixed descriptor of routes described as callable array

4.4 changelog:

  • a731c3b: [Mime] added check for openssl when using SMime
  • 51cf65e: [HttpClient] added $response->toStream() to cast responses to regular PHP streams
  • a640c30: [Translation] deprecated passing a null locale
  • 499ad6d: [Stopwatch] deprecated passing null in Section::get() method
  • dc56389: [WebProfilerBundle] added clear button to ajax tab
  • 088270e: [Console] allow answer to be trimmed by adding a flag
  • 3c9ff1f: [Security] LdapBindAuthenticationProvider does not bind before search query
  • c202e96: [Console] added ProgressBar::preventRedrawFasterThan() and forceRedrawSlowerThan() methods
  • 3e2ee71: [ServerBundle] display all logs by default
  • 14614bd: [Cache] added argument $prefix to AdapterInterface::clear()
  • 400eaa6: [WebserverBundle] deprecated the bundle in favor of Symfony local server
  • 7647209: [Console] added Application::reset()
  • ea0da05: [Console] don't redraw progress bar more than every 100ms by default
  • 2d04e20: [DependencyInjection] deprecated booting the kernel twices
  • e1cea97: [Validator] allowed to use property paths to get limits in range constraint
  • 608d428: [Lock] split StoreInterface into multiple interfaces with less responsabilities
  • 29654a4: [VarDumper] let browsers trigger their own search on double CMD/CTRL + F
  • 4a50400: [Debug] restoring back the state of the Debug component
  • de710f6, adcd643: allow to configure the directory of bundle assets
  • 4499e2a: renamed ErrorCatcher to ErrorRenderer
  • fd3ad65: [Validator] added a new constraint message when there is both min and max

Master changelog:

  • 40d04ec: [MonologBridge] Monolog 2 compatibility

Newest issues and pull requests

They talked about us

Upcoming Symfony Events

Call to Action


Be trained by Symfony experts - 2019-07-15 Clichy - 2019-07-15 Clichy - 2019-07-17 Clichy

SymfonyCloud: from Early Access to General Availability

$
0
0

After two years of development and years of R&D with our partners: the technology behind SymfonyCloud is now production ready. We are thus super happy to announce the general availability of SymfonyCloud!

Ryan Weaver, Symfony Core Team member and SymfonyCasts founder:

Thanks to SymfonyCloud, we deleted thousands of lines of infrastructure config. What did we get in return? More reliable deployments, faster response times, automatic security upgrades, true staging environments & endless debugging tools. It’s made for Symfony apps, which means it handles a lot of details for us. But we also extended it hard: microservices that talk to each other, Elasticsearch, Redis, multiple databases & even some crazy things with workers & custom video processing tools. SymfonyCloud makes doing all of this (with a small team and no sys-admins) possible.

Damien Alexandre, French consultant at JoliCode, PHP and Elasticsearch expert:

Currently playing with @symfony Cloud for a new project

  • basic setup deployed in a couple of hours;
  • great configuration format;
  • no ops, no admin-sys;
  • even managed to run the @redirectionio agent, thanks to @tucksaun

So far, so good

SymfonyCloud, our PaaS optimized for Symfony applications, has been unveiledlast December. Since then, we have opened registration for Early Access to the platform on a daily basis. We gathered a lot of feedback during the last six months of Early Access. It allowed us to improve the product a lot: UI, DX, documentation, support, and billing.

This might not be easy for everyone not involved in SymfonyCloud development to follow everything that happened during the last months so today I would like to share with you some of our achievements.

SymfonyCloud is a fully-managed platform created by friendly Symfony developers for busy Symfony developers. It is the best way to host your Symfony applications. It tightly integrates with Symfony's best practices and development workflow to give you the tools to develop locally with comfort and deploy with confidence. This is especially true for the latest versions of Symfony 4 with the Built-In Environment Variable Processors,workers implementation (to manage the queues in the Messenger component) or RabbitMQ Management UI enabled by default just like any other supported services (MySQL/MariaDB, PostgreSQL, Redis, Memcached, Elasticsearch, RabbitMQ, MongoDB, Influx DB, Solr, Varnish, and Kafka...).

SymfonyCloud allows you to completely define and configure the topology and services you want to use on your projects. Unlike other PaaS services, SymfonyCloud is batteries included which means that you don't need to subscribe to external services to get a cache or a search engine. And that those services are managed. When you back up your project, all of the services are backed-up. It also guarantees full compatibility with the Symfony CLI local web server to test locally your services from production.

A perfect use-case of SymfonyCloud is symfony.com!

The symfony.com website is hosted on SymfonyCloud since the opening of the Early Access registration. It totally changed the way we hosted the website before and allowed us to:

  • Get more people being able to deploy;

  • Work on an exact replica of our production environment to add new features and work bug fixes. For instance, we were super confident to update to Symfony 4.3 as we could test everything!

  • Considerably simplify the deployment coordination (everything is now configured in 1 file of less than 200 lines of YAML);

  • Change only 1 line in the config (well to be correct, just 1 number actually) to update PHP 7.1 to 7.3;

  • Cut off the deployment downtime to 0 (no need anymore to wait to access the website during its deployment).

SymfonyCloud brings you simplicity and confidence in your infrastructure management:

  • Describe your infrastructure
  • Deploy continuously
  • Synchronize your app data and services

Titouan Galopin, Symfony developer:

At En Marche (a French political party), we were used to rely on Kubernetes on Google Cloud to orchestrate and manage our Symfony applications. We invested a lot of time and resources into building a scalable and reliable environment with it.

However, as the party grew, we had less and less time to dedicate to infrastructure. When we launched the European elections campaign in December 2018, we decided to switch to SymfonyCloud. The result was outstanding: we got the same level of scalability and reliability, with additional flexibility, zero-downtime deployment, dropping thousands of lines of YAML and for a cheaper price. Everything became much simpler in an instant.

But in my opinion, what’s even more interesting is how SymfonyCloud helped us organize our IT department around the needs of the different other departments. By being able to host different Git branches in parallel on different URLs, we were able to work on the same project for both the legal department, the political department and the accounting, iterating on three different features in parallel with different interlocutors. This alone saved us dozens of meetings and hundreds of hours of many people across the entire organization.

Deploy today, get started now with SymfonyCloud!


Be trained by Symfony experts - 2019-07-17 Clichy - 2019-07-22 Clichy - 2019-07-22 Clichy

A Week of Symfony #655 (15-21 July 2019)

$
0
0

This week, Symfony added a new component called ErrorHandler to continue the work to replace the Debug component. Meanwhile, the PropertyAccess component improved the error messages in lots of edge cases. Finally, SymfonyCloud, the best way to host your Symfony applications, announced its general availability.

Symfony development highlights

This week, 70 pull requests were merged (50 in code and 20 in docs) and 44 issues were closed (32 in code and 12 in docs). Excluding merges, 37 authors made 7,426 additions and 862 deletions. See details for code and docs.

3.4 changelog:

  • e347e41: [Config] fixed for signatures of typed properties
  • 10ba0c6: [Debug, DebugClassLoader] don't check class if the included file doesn't exist
  • 04b9ce3: [DependencyInjection] Container*::getServiceIds() should return strings
  • 54c77e6: [Config] do not use absolute path when computing the vendor freshness
  • 039fd94: [Serializer] don't cast padded numeric strings in XmlEncoder
  • aece546: [Validator] added support for validation of giga values

4.4 changelog:

  • 88575f0: [FrameworkBundle] added missing event_dispatcher wiring for messenger.middleware.send_message
  • b2dd93a: [Mailer] allow to register mailer configuration in XML format
  • 4b15acf: [PHPUnitBridge] muted deprecations triggered from PHPUnit
  • a57f4bb: [HttpClient] fixed debug output added to stderr at shutdown
  • 4d7f072: [Mime] renamed Headers::getAll() to all()
  • 3f98846: [DependencyInjection] properly handle optional tag attributes for !tagged_iterator
  • e44eb91: [Messenger] fixed UnrecoverableExceptionInterface handling
  • 9662246: [Messenger] passed transport name to factory
  • 950306a: [Messenger] fixed transport_name option not passing validation

Master changelog:

  • 9ab4f14: [PropertyAccess] improved errors when trying to find a writable property
  • e9ab234: [Lock] added aliases for LockFactory
  • af309b0: [HttpClient] make toStream() throw by default
  • 25f1804: [Lock] removed usage of the StoreInterface
  • 9ed1dd1: added a new ErrorHandler component to replace the Debug component
  • 6f78ad8: [Process] path resolution for FCGI configuration
  • e80d405: [Lock] lock split interface fix post-merge review
  • 2a816aa: [Security] drop the component
  • c910095: [Debug] drop the component
  • c9b149c: [DependencyInjection] moved non removing compiler passes to after removing passes
  • cade808: [Process] removed deprecated inheritEnvironmentVariables() method

Newest issues and pull requests

They talked about us

Upcoming Symfony Events

Call to Action


Be trained by Symfony experts - 2019-07-22 Lyon - 2019-07-22 Clichy - 2019-07-22 Clichy

SymfonyCon Amsterdam 2019: the second part of the conference schedule is online!

$
0
0

Logo of the SymfonyCon Amsterdam 2019

SymfonyCon Amsterdam 2019, the international Symfony conference, will take place from November 19th to 23rd downtown Amsterdam, at the Beurs van Berlage! Join us for a full week of Symfony:

  • November 19th-20th: 2-day pre-conference workshops
  • November 21st-22nd: 2-day conference
  • November 23rd: 1-day hackday

We’ve previously announced all the pre-conference workshop topics, read our blog post to learn more about all the trainings we offer before the conference and the first part of the conference schedule, read the blog post where we announce the first conference speakers of SymfonyCon Amsterdam 2019!

Pre-conference workshop days on November 19-20

Get trained on the latest features of Symfony, PHP and its ecosystem just before the conference. We offer 5 different workshop topics per day, you need to choose one workshop topic per day to create your personal workshop combo. Pre-conference workshop tickets are not sold separately from conference tickets. Get the most out of the conference by attending the workshops and the conference!

The combo ticket price includes the 2-day workshops, 2-day conference, the hackday (breaks and lunches during all the 5 days are included). Get 20% off the global price for workshops and conference days with the combo ticket. Improve your Symfony and PHP skills before the conference, register now!

Conference days on November 21-22

We’re still reviewing all the talk proposals we received for the conference and we’d like to thank again all the people who took the time to submit a talk proposal for the conference. We’ve selected more conference speakers and are very pleased to share with you who will be speaking at the conference! For those who don’t know it yet, the conference schedule will be divided into 4 tracks during our 2-day conference: advanced Symfony track, beginner Symfony track, PHP track and an Unconference track.

We’ll have the great honor to welcome at the conference (in order of appearance on the conference schedule):

  • Valentin Udaltsov will speak about "How to contribute to Symfony and why you should give it a try". Valentin is an active Symfony contributor since 3 years. Not only it's a way to thank the project, it's also an immense source of knowledge and communication for him. He would like to share his experience and to encourage contributing to Symfony. He'll present how participation in an open source project makes you a better developer; the easy steps to join the Symfony ecosystem; where to get an idea for a pull request; branches and roadmap; coding standards, conventions and backward compatibility; rebase flow; review process.
  • Jachim Coudenys will be on stage to speak about "How Doctrine caching can skyrocket your application". Besides the fact that Doctrine will help you develop faster, so a little overhead doesn't really matter, there are numerous options to increase the performance of the application. By understanding how the system works in the first place, a lot of issues can be avoided right away. When you have done everything to avoid these pitfalls, you can bring in the big guns: caching. Doctrine has different caching mechanism and since Doctrine 2.5 "Second Level Cache" was added to our toolbox. After this talk, you should know what the impact is of every cache and how to use it.
  • Adiel Cristo will talk about "Crawling the Web with the New Symfony Components". When developing an application, a common feature we need to implement is gathering data from other sources. These data are available in various forms, usually unstructured, and behind some JS application, making them harder to reach. In this talk we'll use the Symfony's HttpClient, Messenger and Panther to build a crawler, first as a simple console application, then evolving to a distributed one.
  • Alessandro Lai will present a talk about "Adding Event Sourcing to an existing PHP project (for the right reasons). "Event Sourcing", along with "CQRS", have recently become trending terms, and now there is so much theory, blog posts and talks about them. This talk is a case history in which I will tell you (with little theory and a lot of practical examples) how we decided to add event sourcing to an already existing project (without eradicating the rest or rewriting it), to solve a specific problem (reporting and its history) for which this methodology proved to be the perfect solution.
  • Kévin Dunglas will speak about "HYPErmedia: leveraging HTTP/2 and Symfony for better and faster web APIs. Over the years, several formats have been created to fix performance bottlenecks of web APIs: the n+1 problem, over fetching, under fetching… Leveraging HTTP/2 and HTTP/3 unveil the true powers of the web (hypermedia architecture) with no compromises with performance. During this presentation, we’ll learn how to design our APIs to be able to maximise the benefits provided by HTTP/2. Better, Symfony already contain all the tools you need to create (WebLink, API Platform) and consume (HttpClient) such APIs. We will discover these gems together.
  • Tobias Sjösten will talk about "What happens when you press enter in the browser?. As a technical interviewer, one of the questions I like to ask the most is "what happens when I write www.example.com in the browser and then press enter?". The answer reveals a lot about the interviewee's understanding of a vast number of technologies that fringes web development. In this talk, I will go through exactly what happens, down to excruciating detail, so that you will be better prepared for your future job interview.
  • Andrii Yatsenko will present "Make the Most out of Twig. Twig is the most powerful templating engine in the PHP world that enables us to create highly complex projects with hundreds of multi-level extended templates, thousands of blocks, functions, filters, tests, and macros. It also offers a sandbox, a unique but not a widely used feature that creating secure user-editable templates. In addition, there are a number of handy built-in and external debugging tools available in the Twig ecosystem to simplify the day-to-day work process for a Twig designer. In this presentation, I will talk about how extensively we use Twig in a complex open-source e-commerce project.
  • Stefan Koopmanschap will speak about "Mental Health in the Workplace. Mental health is an important part of life, yet mental illness is big. Perhaps bigger than you might think when looking around you. In this talk, you'll be introduced to some basics on mental health and mental illness, and given some tips and handholds on how to handle mental illness on the work floor.
  • Michelle Sanver will be on stage to talk about "Importing bad data: Outputting good data with Symfony. The role of our API in Switzerland is to consume a lot of data that was not meant for a digital age, and to transform it into beautiful output, for one of the biggest retailer API’s in Switzerland. This is a journey of consuming a lot of data and API’s from different sources and in different formats. Some of them made us laugh, some of us got migraines. We built a smooth architecture to consume and output data. I am proud of our architecture that we seamlessly upgraded to keep latest versions, now Symfony 4 along the way. I want to share how we managed to keep this API up to date for over 5 years, and our architecture that we use to make it happen.

Hackday on November 23

Join us for the hackday and learn how to contribute to Symfony, review PRs, help newcomers, fix issues, write documentation, meet and ask questions to the Symfony Core Team... in other words come to improve Symfony together and share the joy of being part of such a great community!

Check the conference schedule and discover more about the speakers who will be on stage during the conference, find out more details about their talks! We'll soon announce more speakers and talks, stay tuned!

We can't wait to meet you at SymfonyCon Amsterdam 2019, register now for the conference or for a combo pre-conference workshops and conference!

See you there!


Be trained by Symfony experts - 2019-07-24 Lille - 2019-07-24 Clichy - 2019-07-29 Clichy

Symfony 3.4.30 released

$
0
0

Symfony 3.4.30 has just been released. Here is a list of the most important changes:

  • bug #32503 Fix multiSelect ChoiceQuestion when answers have spaces (@IceMaD)
  • bug #32688 [Yaml] fix inline handling when dumping tagged values (@xabbuh)
  • bug #32644 [WebProfileBundle] Avoid getting right to left style (@Arman-Hosseini)
  • bug #32679 [Intl] relax some date parser patterns (@xabbuh)
  • bug #31303 [VarDumper] Use ReflectionReference for determining if a key is a reference (php >= 7.4) (@dorumd, @nicolas-grekas)
  • bug #32485 [Validator] Added support for validation of giga values (@kernig)
  • bug #32572 Bump minimum version of symfony/phpunit-bridge (@fancyweb)
  • bug #32438 [Serializer] XmlEncoder: don't cast padded strings (@ogizanagi)
  • bug #32579 [Config] Do not use absolute path when computing the vendor freshness (@lyrixx)
  • bug #32563 Container::getServiceIds() should return strings (@mathroc)
  • bug #32466 [Config] Fix for signatures of typed properties (@tvandervorm)
  • bug #32500 [Debug][DebugClassLoader] Include found files instead of requiring them (@fancyweb)
  • bug #32464 [WebProfilerBundle] Fix Twig 1.x compatibility (@yceruto)
  • bug #31620 [FrameworkBundle] Inform the user when sav _path will be ignored (@gnat42)
  • bug #32096 Don't assume port 0 for X-Forwarded-Port (@alexbowers, @xabbuh)
  • bug #31267 [Translator] Load plurals from mo files properly (@Stadly)
  • bug #31266 [Translator] Load plurals from po files properly (@Stadly)
  • bug #32421 [EventDispatcher] Add tag kernel.rest on 'debug.even _dispatcher' service (@lyrixx)
  • bug #32379 [SecurityBundle] conditionally register services (@xabbuh)
  • bug #32363 [FrameworkBundle] reset cache pools between requests (@nicolas-grekas)
  • bug #32365 [DI] fix processing of regular parameter bags by MergeExtensionConfigurationPass (@nicolas-grekas)
  • bug #32187 [PHPUnit] Fixed composer error on Windows (@misterx)
  • bug #32206 Catch JsonException and rethrow in JsonEncode (@phil-davis)
  • bug #32200 [Security/Core] work around sodiu _compat issue (@nicolas-grekas)

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-07-29 Clichy - 2019-07-29 Clichy - 2019-07-31 Clichy

Symfony 4.2.11 released

$
0
0

Symfony 4.2.11 has just been released. Here is a list of the most important changes:

  • bug #32760 [HttpKernel] clarify error handler restoring process (@xabbuh)
  • bug #32503 Fix multiSelect ChoiceQuestion when answers have spaces (@IceMaD)
  • bug #32688 [Yaml] fix inline handling when dumping tagged values (@xabbuh)
  • bug #32644 [WebProfileBundle] Avoid getting right to left style (@Arman-Hosseini)
  • bug #32700 [Messenger] Flatten collection of stamps collected by the traceable middleware (@ogizanagi)
  • bug #32679 [Intl] relax some date parser patterns (@xabbuh)
  • bug #31303 [VarDumper] Use ReflectionReference for determining if a key is a reference (php >= 7.4) (@dorumd, @nicolas-grekas)
  • bug #32485 [Validator] Added support for validation of giga values (@kernig)
  • bug #32572 Bump minimum version of symfony/phpunit-bridge (@fancyweb)
  • bug #32438 [Serializer] XmlEncoder: don't cast padded strings (@ogizanagi)
  • bug #32579 [Config] Do not use absolute path when computing the vendor freshness (@lyrixx)
  • bug #32563 Container::getServiceIds() should return strings (@mathroc)
  • bug #32466 [Config] Fix for signatures of typed properties (@tvandervorm)
  • bug #32500 [Debug][DebugClassLoader] Include found files instead of requiring them (@fancyweb)
  • bug #32464 [WebProfilerBundle] Fix Twig 1.x compatibility (@yceruto)
  • bug #31620 [FrameworkBundle] Inform the user when sav _path will be ignored (@gnat42)
  • bug #32096 Don't assume port 0 for X-Forwarded-Port (@alexbowers, @xabbuh)
  • bug #31267 [Translator] Load plurals from mo files properly (@Stadly)
  • bug #31266 [Translator] Load plurals from po files properly (@Stadly)
  • bug #32383 [Serializer] AbstractObjectNormalizer ignores the property types of discriminated classes (@sandergo90)
  • bug #32421 [EventDispatcher] Add tag kernel.rest on 'debug.even _dispatcher' service (@lyrixx)
  • bug #32398 [Messenger] Removes deprecated call to ReflectionType::toString() on MessengerPass (@brunowowk)
  • bug #32379 [SecurityBundle] conditionally register services (@xabbuh)
  • bug #32363 [FrameworkBundle] reset cache pools between requests (@nicolas-grekas)
  • bug #32365 [DI] fix processing of regular parameter bags by MergeExtensionConfigurationPass (@nicolas-grekas)
  • bug #32187 [PHPUnit] Fixed composer error on Windows (@misterx)
  • bug #32299 [Lock] Stores must implement putOffExpiration (@jderusse)
  • bug #32236 [Cache] work aroung PHP memory leak (@nicolas-grekas)
  • bug #32206 Catch JsonException and rethrow in JsonEncode (@phil-davis)
  • bug #32200 [Security/Core] work around sodiu _compat issue (@nicolas-grekas)

WARNING: 4.2.11 is the last version for the Symfony 4.2 branch. If some of your projects are still using this version, consider upgrading as soon as possible. However, if you can't upgrade soon, note that we still provide security issue releases according to our release policy.

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-07-29 Clichy - 2019-07-29 Clichy - 2019-07-31 Clichy

Symfony 4.3.3 released

$
0
0

Symfony 4.3.3 has just been released. Here is a list of the most important changes:

  • bug #32726 [Messenger] Fix redis last error not cleared between calls (@chalasr)
  • bug #32760 [HttpKernel] clarify error handler restoring process (@xabbuh)
  • bug #32730 [Inflector] Fix pluralizing words ending with "son" (@norkunas)
  • bug #32715 [DI] fix perf issue with lazy autowire error messages (@nicolas-grekas)
  • bug #32503 Fix multiSelect ChoiceQuestion when answers have spaces (@IceMaD)
  • bug #32688 [Yaml] fix inline handling when dumping tagged values (@xabbuh)
  • bug #32710 [Security/Core] align defaults for sodium with PHP 7.4 (@nicolas-grekas)
  • bug #32644 [WebProfileBundle] Avoid getting right to left style (@Arman-Hosseini)
  • bug #32689 [HttpClient] rewind stream when using Psr18Client (@nicolas-grekas)
  • bug #32700 [Messenger] Flatten collection of stamps collected by the traceable middleware (@ogizanagi)
  • bug #32699 [HttpClient] fix canceling responses in a streaming loop (@nicolas-grekas)
  • bug #32679 [Intl] relax some date parser patterns (@xabbuh)
  • bug #31303 [VarDumper] Use ReflectionReference for determining if a key is a reference (php >= 7.4) (@dorumd, @nicolas-grekas)
  • bug #32485 [Validator] Added support for validation of giga values (@kernig)
  • bug #32567 [Messenger] pass transport name to factory (@Tobion)
  • bug #32568 [Messenger] Fix UnrecoverableExceptionInterface handling (@LanaiGrunt)
  • bug #32604 Properly handle optional tag attributes for !tagge _iterator (@apfelbox)
  • bug #32571 [HttpClient] fix debug output added to stderr at shutdown (@nicolas-grekas)
  • bug #32443 [PHPUnitBridge] Mute deprecations triggered from phpunit (@greg0ire)
  • bug #32572 Bump minimum version of symfony/phpunit-bridge (@fancyweb)
  • bug #32438 [Serializer] XmlEncoder: don't cast padded strings (@ogizanagi)
  • bug #32579 [Config] Do not use absolute path when computing the vendor freshness (@lyrixx)
  • bug #32563 Container::getServiceIds() should return strings (@mathroc)
  • bug #32553 [Mailer] Allow register mailer configuration in xml format (@Koc)
  • bug #32442 Adding missing even _dispatcher wiring for messenger.middleware.sen _message (@weaverryan)
  • bug #32466 [Config] Fix for signatures of typed properties (@tvandervorm)
  • bug #32501 [FrameworkBundle] Fix descriptor of routes described as callable array (@ribeiropaulor)
  • bug #32500 [Debug][DebugClassLoader] Include found files instead of requiring them (@fancyweb)
  • bug #32464 [WebProfilerBundle] Fix Twig 1.x compatibility (@yceruto)
  • bug #31620 [FrameworkBundle] Inform the user when sav _path will be ignored (@gnat42)
  • bug #32096 Don't assume port 0 for X-Forwarded-Port (@alexbowers, @xabbuh)
  • bug #31820 [SecurityBundle] Fix profiler dump for non-invokable security listeners (@chalasr)
  • bug #32392 [Messenger] Doctrine Transport: Support setting aut _setup from DSN (@bendavies)
  • bug #31267 [Translator] Load plurals from mo files properly (@Stadly)
  • bug #31266 [Translator] Load plurals from po files properly (@Stadly)
  • bug #32383 [Serializer] AbstractObjectNormalizer ignores the property types of discriminated classes (@sandergo90)
  • bug #32413 [Messenger] fix publishing headers set on AmqpStamp (@Tobion)
  • bug #32421 [EventDispatcher] Add tag kernel.rest on 'debug.even _dispatcher' service (@lyrixx)
  • bug #32398 [Messenger] Removes deprecated call to ReflectionType::toString() on MessengerPass (@brunowowk)
  • bug #32379 [SecurityBundle] conditionally register services (@xabbuh)
  • bug #32380 [Messenger] fix broken key normalization (@Tobion)
  • bug #32363 [FrameworkBundle] reset cache pools between requests (@nicolas-grekas)
  • bug #32365 [DI] fix processing of regular parameter bags by MergeExtensionConfigurationPass (@nicolas-grekas)
  • bug #32187 [PHPUnit] Fixed composer error on Windows (@misterx)
  • bug #32299 [Lock] Stores must implement putOffExpiration (@jderusse)
  • bug #32302 [Mime] Remove @internal annotations for the serialize methods (@francoispluchino)
  • bug #32334 [Messenger] Fix authentication for redis transport (@alexander-schranz)
  • bug #32309 Fixing validation for messenger transports retr _strategy service key (@weaverryan)
  • bug #32331 [Workflow] only decorate when an event dispatcher was passed (@xabbuh)
  • bug #32236 [Cache] work aroung PHP memory leak (@nicolas-grekas)
  • bug #32206 Catch JsonException and rethrow in JsonEncode (@phil-davis)
  • bug #32211 [Mailer] Fix error message when connecting to a stream raises an error before connect() (@fabpot)
  • bug #32210 [Mailer] Fix timeout type hint (@fabpot)
  • bug #32199 [EventDispatcher] improve error messages in the event dispatcher (@xabbuh)
  • bug #32200 [Security/Core] work around sodiu _compat issue (@nicolas-grekas)

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-07-29 Clichy - 2019-07-29 Clichy - 2019-07-31 Clichy

A Week of Symfony #656 (22-28 July 2019)

$
0
0

This week, Symfony 3.4.30, Symfony 4.2.11, and Symfony 4.3.3 maintenance versions were released. The 4.2.11 version is the last one in the 4.2 branch, so you are encouraged to upgrade to Symfony 4.3 as soon as possible. In addition, the second part of the schedule of the SymfonyCon Amsterdam 2019 conference was published.

Symfony development highlights

This week, 103 pull requests were merged (79 in code and 24 in docs) and 54 issues were closed (43 in code and 11 in docs). Excluding merges, 36 authors made 3,790 additions and 1,658 deletions. See details for code and docs.

3.4 changelog:

  • b8d03ca: [VarDumper] use \ReflectionReference for determining if a key is a reference (php >= 7.4)
  • e45c7a3: [FrameworkBundle] renamed internal WebTestCase to avoid confusion
  • 789c330: [Debug] added tests for custom ExceptionHandler handlers
  • 639041c: [Yaml] fixed inline handling when dumping tagged values
  • 1ce527a: [Console] fixed multiSelect ChoiceQuestion when answers have spaces

4.2 changelog:

  • e06b0f0: [Messenger] flatten collection of stamps collected by the traceable middleware
  • 5acd99c: [DoctrineBridge] added parameter type declarations to private methods
  • b00d988: [HttpKernel] clarified error handler restoring process

4.3 changelog:

  • 1fc080b: [HttpClient] rewind stream when using Psr18Client
  • 280fd7d: [HttpClient] fixed canceling responses in a streaming loop
  • 7fae78f: [Security/Core] aligned defaults for sodium with PHP 7.4
  • 61b0f79: [DependencyInjection] fixed performance issue with lazy autowire error messages
  • 5acd99c: [DoctrineBridge] added parameter type declarations to private methods
  • 90c6482: [Messenger] fixed Redis last error not cleared between calls

4.4 changelog:

  • 7dfc97b: [Mailer] improved exception message for unsupported scheme
  • e726161: removed hack to access class scope inside closures
  • 759f91c: [ErrorRenderer] fixed the priority order of the error renderers registration
  • 41c530f: [ErrorRenderer] made debug false by default and cleanup
  • 12f99c0: [ErrorRenderer] improved the exception page provided by HtmlErrorRenderer
  • 396f4be: [Routing] deprecated ServiceRouterLoader and ObjectRouteLoader in favor of ContainerLoader and ObjectLoader
  • 379b525: [ErrorRenderer] allowed disabling debug content in debug mode (preview mode)
  • 4045a13: [TwigBundle] deprecated error templates for non-html formats and using ErrorRenderer as fallback
  • f492ba5: [WebProfilerBundle] decoupled TwigBundle and used the new ErrorRenderer mechanism
  • 5af1a90: [Form] repeat preferred choices in list of all choices
  • 71687e0: [Form, Validator] generated accept attribute with file constraint and mime types option
  • 1ce527a: [Console] fixed multiSelect ChoiceQuestion when answers have spaces
  • fc14cb7: [Mailer] renamed mailer bridge transport classes
  • f6e93de: [ErrorHandler] decoupled from ErrorRenderer component
  • 86440a4: [Form] used a reference date to handle times during DST
  • 29ba2e1: [Console] improved performance when formatting long exception
  • 65f0d6f: [VarDumper] added support for Imagine/Image

Master changelog:

  • 0f84bd6: [SecurityBundle] removed the deprecated "switch_user.stateless" option

Symfony Local Server

Symfony Local Server, the best way to run Symfony applications on your local machine, released its new 4.6.2 version with the following changes:

  • Fix PHP discovery for homebrew (when the binary contains a _ under the php/ subdirectory)
  • Add billing:update:card command to allow one to update projects's billing card from CLI
  • Change default PHP version selection to prefer non-symlinked versions
  • Fix infinite loop when credit card is invalid
  • Add a command to refresh PHP versions (local:php:refresh)
  • Fix a panic when adding something between symfony and composer/php/console
  • Fix PHP version used for symfony composer
  • Add support for phpenv dev versions
  • Add information about why a PHP version is chosen for the current directory in local:php:list
  • Allow to project:scale directly to a specific plan
  • Fix looking for all PHP versions in PATH on Linux

Newest issues and pull requests

They talked about us

Upcoming Symfony Events

Call to Action


Be trained by Symfony experts - 2019-07-29 Clichy - 2019-07-29 Clichy - 2019-07-31 Clichy

Join us at SymfonyLive London 2019 on September 13th!

$
0
0

We're super pleased to organize the 8th edition of the SymfonyLive London conference. Not yet registered? Regular registration to the event is available until August 5th, you only have a week left to register before the price changes! Join us there! The event is split into 2 days:

  • Pre-conference workshops day on September 12th
  • Conference day including 2 tracks on September 13th

The entire event will be held at the Park Plaza Westminster Bridge Hotel.

Pre-conference workshops day

On September 12th, we're organizing several workshops to enable all of you to get trained on Symfony and its ecosystem before the conference day. You can choose one workshop topic among the 4 workshops we offer:

  • Getting ready for Symfony 5 by Nicolas Grekas - Symfony. Learn how to prepare a Symfony 4 app for version 5, to be released next November and all the new best practices recommended by the Symfony Core team, including the new way of using the latest improved components, whether you know them already or not.
  • Building API-driven apps with API Platform by Kévin Dunglas - Les-Tilleuls.coop. Learn how to use and extend the most popular features of the API Platform: data providers and persisters, docs, pagination, validation, sorting, filtering, authentication, authorization, content negotiation, Mercure live update and much more! This hands-on workshop is focused on the server part of the framework (PHP).
  • Practical Design Patterns with Symfony by Titouan Galopin - SymfonyInsight lead. Discover Software Architecture from the point of view of a Symfony developer. We will discuss the Design Patterns implemented by the framework and learn how these patterns can help you develop better Symfony applications. We will also implement the most important of these patterns in a real-world Symfony application in order to give you effective practical tools for your next project.
  • Profiling Symfony & PHP apps by Dmytro Naumenko - Blackfire expert. Profiling an application should always be the first step in trying to improve its performance. With this workshop, learn how to identify performance issues in your application and adopt the best profiling practices in your daily development habits. This workshop will use the Blackfire.io tool to help you identify performance leaks.

No matter your level or your Symfony skills, all our workshops are open to anyone who knows the basis of Symfony. Our trainers are happy to adapt their workshops to your expertise needs. If you're a beginner or an advanced Symfony developer, you'll always get the most out of our workshops at your own path. Find out more details about our workshops!

Conference day

The conference day will be split into 2 tracks, we're super happy to welcome 14 amazing speakers! Here is a sneak peek of the conference schedule:

  • Fabien Potencier, Symfony founder/project lead, will be on stage for the Opening Keynote where he'll announce a new component...!
  • Neal Brooks, PHP engineer who likes using Symfony, will speak about "Restless microservices with Symfony". When we think about microservices we usually imagine a bunch of self-contained and job-focused applications, each specifying and managing their own boundaries and dependencies, and talking to each other over HTTP / REST APIs. In this presentation we’ll dig into the structure of microservices, think about the major pros and cons, and see if we can tweak it into something a bit more developer-friendly without losing the benefits.
  • Valentine Boineau, SymfonyInsight Developer, will present a talk entitled "Symfony Checker is coming". Have you ever heard of the PHP AST? Maybe not... CFG and SSA? Probably not! In this talk, I will introduce these cool algorithms, how they are used in code quality analysis and how we leveraged them in a project I'm working on: the Symfony Checker.
  • Dan Blows, will talk about "Feeling unfulfilled by SPA promises? Go back to Twig". We’ve all heard the benefits of building a client-side app in JavaScript that talks to a server-side REST API. But often this approach introduces a lot of accidental complexity, without really delivering the gains. How can you get the best of both worlds? In this talk, I’ll show how to get the simplicity of server-side rendering with the architectural and performance improvements of an SPA.
  • Kamil Kokot, Open Source maintainer and contributor, Software Engineer at Sylius, founder of Friends Of Behat, will talk about "BDD Your Symfony Application". Behaviour Driven Development helps bridge the communication gap between business and IT. This talk will explain the basics of BDD methodology, best practices for writing Cucumber scenarios and how to integrate Symfony with Behat by using a new emerging solution - FriendsOfBehat's SymfonyExtension. I will share the practical insights distilled from 4 years of developing and maintaining the biggest open-source Behat suite which is a part of Sylius.
  • Tugdual Saunier, SymfonyCloud Product Manager, will introduce you to "SymfonyCloud: the infrastructure of the Symfony ecosystem". You don't know it yet but you are already using SymfonyCloud every day! Since 2018, the infrastructure of the Symfony community gradually migrated to SymfonyCloud. He'll show you what happens behind the scene and how we leverage every SymfonyCloud features to move faster.

Discover the entire conference schedule!

If you're not yet registered to SymfonyLive London 2019, take your conference ticket or combo ticket pre-conference workshop and conference at regular rate until August 5th (included). Past this date, the price will increase.

See you soon at SymfonyLive London 2019!


Be trained by Symfony experts - 2019-07-29 Clichy - 2019-07-29 Clichy - 2019-07-31 Clichy

A Week of Symfony #657 (29 July - 4 August 2019)

$
0
0

This week, Symfony development activity focused on adding support for the upcoming PHP 7.4 and 8.0 versions. In addition, lots of tests were updated to add support for PHPUnit 8.

Symfony development highlights

This week, 113 pull requests were merged (79 in code and 34 in docs) and 55 issues were closed (43 in code and 12 in docs). Excluding merges, 43 authors made 6,925 additions and 7,697 deletions. See details for code and docs.

3.4 changelog:

  • de490b4: [HttpKernel] do not stopwatch sections when profiler is disabled
  • 6763172: [DependencyInjection] fixed dumping Doctrine-like service graphs
  • 5c67a67: [Config] don't add object-value of static properties in the signature of container metadata-cache
  • 3f43186: [Console] fixed a warning on PHP 7.4
  • b706372: [Cache] fixed warnings on PHP 7.4
  • 1143b02: [HttpFoundation] fixed getMaxFilesize
  • f1cb4b5: [Yaml] fixed comments in multi line value
  • bcfc7a4: [Form] updated type of form $name arguments
  • 5fa9ed4: made tests support phpunit 8
  • 1ad2682: [PhpUnitBridge] fixed assertInternalType deprecation
  • 82aace3: [PhpUnit Bridge] added polyfill for TestCase::createMock()
  • 6d49913: replaced calls to setExpectedException by Pollyfill in all tests
  • 8173daf: [PhpUnitBridge] removed @expectedException annotation
  • 6604a3e: [PhpUnitBridge] removed deprecated methods assertArraySubset
  • 9188261: [Yaml] fixed a PHP 8 uncaught TypeError in abs() method

4.3 changelog:

  • 85827f3: [FrameworkBundle] recompiled container when translations directory changes
  • 7942082: [DependencyInjection] fixed bindings and tagged_locator
  • 9ac3552: [HttpClient] Preserve the case of headers when sending them
  • 0ebf7ee: Ensure signatures for setUp|tearDown|setUpAfterClass|tearDownAfterClass methods in tests are compatible with phpunit 8.2
  • 8e3161b: [Mailer] changed the order of authenticators
  • e248345: [Mailer] fixed error not being thrown properly
  • 0470ac3: [Mailer] fixed wrong error message when connection closes unexpectedly
  • 7479543: [Yaml] added flag to dump NULL as ~
  • 35bf2fa: [FrameworkBundle] added config for translator cache_dir
  • 1ce83da: [Mime] added AbstractPart::asDebugString()
  • 37265de: [Mailer] added a name to the transports

4.4 changelog:

  • bd45789: [Form] derive default timezone from reference_date option when possible
  • 92ceb80: [Security] use right arguments count in Ldap security factories
  • f4ceb91: [Security] revise UserPasswordEncoderInterface::needsRehash()
  • 537114d: [ErrorHandler] relaxed transition to the new Debug class
  • 85058f5: [DependencyInjection] allowed dumping the container in one file instead of many files
  • 861f792: [ErrorRenderer] added DebugCommand for easy debugging and testing
  • bb74384: [DoctrineBridge] deprecated RegistryInterface
  • 253d6f5: [PhpUnitBridge] polyfill the method createPartialMock
  • eefcb33: [Mailer] added debug info to TransportExceptionInterface
  • b3cf2d4: [PhpUnitBridge] added polyfill for methods assertNan, assertFinite and assertInfinite
  • d01ec68: [PhpUnitBridge] added polyfill for assertStringContainsString*()
  • 5d5e04b: [PhpUnitBridge] added more assert*() polyfills
  • f1801a4: [Mailer] added debug info on HTTP transport exceptions

Master changelog:

  • b41e34d: [WebProfilerBundle] removed the deprecated ExceptionController
  • 7b354df: [Stopwatch] added type-hints for Stopwatch and Section classes
  • 1f8f4f2: [Form] drop support for differing timezones without ref date

Newest issues and pull requests

They talked about us

Upcoming Symfony Events

Call to Action


Be trained by Symfony experts - 2019-08-5 Clichy - 2019-08-12 Berlin - 2019-08-12 Berlin

Symfony Maintenance: Changes for Standard Releases

$
0
0

As of Symfony 5.0, we are changing the way we manage security issues for standard releases. A standard release is any minor version that is not a LTS release: so, versions X.0, X.1, x.2, and x.3.

For these standard releases, we will align the EOM (end of maintenance) date with the EOL (end of life) date. So, instead of having 14 months of security fixes, we will only have 8 months.

For instance, Symfony 4.3 EOM date is January 2020 and EOL date is July 2020. With the new rules, EOL would have been January 2020. Symfony 5.0 will be the first release to implement the change: EOM and EOL dates will be July 2020.

We are making this change as backporting (or forwardporting) security issue patches on these versions proved to be difficult and time consuming (the code might have diverged a lot from the previous LTS but also from the current maintained minor version). We think that this extra time spent doing that is not worth it as projects following standard versions upgrade fast.

To be clear, this change does not affect LTS releases (4.4, 5.4, ...).

The "Release Process" page in the documentation has been updated accordingly.


Be trained by Symfony experts - 2019-08-12 Berlin - 2019-08-12 Berlin - 2019-08-14 Berlin

A Week of Symfony #658 (5-11 August 2019)

$
0
0

This week, Symfony continued working on adding compatibility with the latest PHPUnit versions and made the PHPUnit Bridge component act as a polyfill for newest PHPUnit features. The translations of validation messages were also updated for some languages. Finally, Symfony announced some changes for standard version releases to align their end of support for both regular and security issues.

Symfony development highlights

This week, 141 pull requests were merged (121 in code and 20 in docs) and 69 issues were closed (68 in code and 1 in docs). Excluding merges, 50 authors made 8,033 additions and 4,067 deletions. See details for code and docs.

3.4 changelog:

  • 828ce34: [FrameworkBundle] detect indirect env vars in routing
  • 2f97ab1: used PhpUnit native assertions in filesystem checks
  • f752416: Used namespaced Phpunit classes
  • f38f6e7: [Intl] support DateTimeInterface in IntlDateFormatter::format
  • b5e99f3: [PhpUnitBridge] fixed PHPUnit 8.3 compatibility where method handleError was renamed to __invoke
  • 6dfeeb5: [Form] fixed PHPdoc inconsistencies
  • 08573a1: used assertStringContainsString when needed
  • 443e923: used assertContainsEquals when needed
  • 87c8561: used assertEqualsWithDelta when needed
  • 4123465: [ProxyManagerBridge] added polyfill for unmaintained version
  • c88d125: fixed inconsistent return points
  • f8a3517: fixed some return type annotations
  • 48859fd: [FrameworkBundle, Config] ignored exceptions thrown during reflection classes autoload
  • 854f5d1: [Lock] throw NotSupportException consistently
  • e48d2c1: [HttpKernel] clarified error handler restoring process again
  • ce09c31: [HttpKernel] added resilience against file_get_contents() race conditions
  • 889f454: [FrameworkBundle, TwigBridge] fixed test compatibility with 4.x components
  • e848729: [Serializer] fixed negative DateInterval
  • 3dab7c9: Updated the Persian translation
  • e5e3d6a: Updated the Slovak translation
  • c474e34: Updated the Danish translation
  • 143789c: Updated the Serbian Latin translation
  • 5e3bfad: Updated the Serbian Cyrillic translation

4.3 changelog:

  • c674042: [Messenger] removed named parameters and replaced with ? placeholders for sqlsrv compatibility
  • 02c1dec: [HttpClient] used "idle" instead of "inactivity" when telling about the timeout option
  • b6d6c6b: [Messenger] fixed ConsumeMessagesCommand configuration
  • a3aaaa1: [Mime] fixed wrong Mime types
  • b406466: [TwigBridge] passed translation parameters to the trans filter
  • fda49e6: [HttpClient] removed CURLOPT CONNECTTIMEOUT MS curl opt
  • 51eb41b: [HttpFoundation] clear invalid session cookie
  • 1ff2ab3: [HttpKernel] trim the leading backslash in the controller init
  • 2f2d1aa: [DependencyInjection] improved an exception message
  • 8b699ae: [Mime] created mailBody with only attachments part present

4.4 changelog:

  • c754f15: [Form] type cannot be a FormTypeInterface anymore
  • b74ccda: [PhpUnitBridge] made the bridge act as a polyfill for newest PHPUnit features
  • 84d5996: [Ldap] added security LdapUser and provider
  • f6ea704: [Security] added support for opportunistic password migrations
  • 0c95aad: [PhpUnitBridge] added polyfill for PhpUnit namespace
  • e769d52: [Mailer] fixed dispatcher not available in Mailer
  • fdaf0e0: [Mailer] added support for the profiler
  • 233562f: [Mailer] made the message logger permanent
  • 2070e30: [Dotenv] use default value when referenced variable is not set
  • 3498259: [HttpClient] added "max_duration" option
  • d94c4b4: [Mailer] fixed getName() when transport is null
  • 6d181ff: removed deprecated assertContains
  • 38ff264: [ErrorRenderer] fixed timestamp on logs view
  • e0ccbf6: cleanup remaining param $options and internal Intl FullTransformer
  • 29dbbe1: [HttpFoundation] deprecated HeaderBag::get() returning an array and add all($key) instead
  • 5ce3a61: [Validator] allow objects implementing __toString() to be used as violation messages
  • 865e4d7: [DoctrineBridge] invokable event listeners
  • 8c25592: [FrameworkBundle, Routing] private service route loader
  • 32b2a52: [Intl] added support for ISO 3166-1 Alpha-3 country codes
  • 1ce83da: [Mime] added AbstractPart::asDebugString()
  • 37265de: [Mailer] added a name to the transports
  • f91fa10: [HttpClient] fix data loss when streaming as a PHP resource

Master changelog:

  • fd9e512: [HttpKernel] reintroduced __wakeup method in DataCollector
  • 66e26a4: [Cache] removed PhpArrayAdapter::throwOnRequiredClass()
  • 0776b3a: [Lock] removed deprecated waitAndSave() methods
  • 245c521: drop Debug compatibility layers
  • 0314c08: [HttpKernel] lower EOL date

Newest issues and pull requests

They talked about us

Upcoming Symfony Events

Call to Action


Be trained by Symfony experts - 2019-08-12 Berlin - 2019-08-12 Berlin - 2019-08-14 Berlin

A Week of Symfony #659 (12-18 August 2019)

$
0
0

This week, Symfony added support for an alternative directory convention for bundles which is similar to the one used in full Symfony apps. In addition, it continued adding types for arguments across its entire codebase.

Symfony development highlights

This week, 104 pull requests were merged (52 in code and 52 in docs) and 29 issues were closed (22 in code and 7 in docs). Excluding merges, 46 authors made 5,747 additions and 4,703 deletions. See details for code and docs.

3.4 changelog:

  • 0fd4f8a: [Intl] cleanup unused language aliases entry
  • b382e62: [HttpFoundation] fixed getMaxFilesize() returning zero
  • 08147dd: [Console] fixed a PHP notice when there is no function in the stack trace of an Exception
  • 73dcf71: [Serializer] fixed docblocks and parameter names

4.3 changelog:

  • ad8c35f: [SecurityBundle] displayed the correct class name on the deprecated notice
  • d77d89d: [Mailer] don't duplicate addresses in Sendgrid Transport

4.4 changelog:

  • 3bc4e4f: [WebLink] implemented PSR-13 directly
  • 046aff2: [Form] added type declarations to private DefaultChoiceListFactory methods
  • 44f6e94: [Serializer] encoded empty objects as objects instead of arrays
  • d6773bc: [Translation] allowed .xliff file extension in XliffLintCommand
  • 32e0a25: [HttpKernel, FrameworkBundle] added alternative convention for bundle directories
  • 50c5911: [DependencyInjection] deprecated support for non-object services

Master changelog:

  • 320e495: [ErrorHandler] trigger deprecation in DebugClassLoader when child class misses a return type
  • a1f0c67: [Lock] removed deprecated method
  • 90e3da4: [VarDumper] added parameter type declarations
  • 63b27f6: [ExpressionLanguage] added more parameter types
  • 0ec5d5b: [HttpKernel] added more parameter types
  • bb41d53: [VarDumper] added types to private methods
  • e8f4dfc: [FrameworkBundle] added parameter types from Translation
  • d68b255: [FrameworkBundle] added parameter types from Routing
  • 23334df: [FrameworkBundle] added parameter types from DependencyInjection
  • 2439837: [FrameworkBundle] added parameter types from HttpKernel
  • 3522590: [Mailer] added support for the queued flag in the EmailCount assertion
  • 64d2be5: [Serializer] added more parameter types

Symfony Local Server

Symfony Local Server, the best way to run Symfony applications on your local machine, released its new 4.6.4 version with the following changes:

  • Fix PHP-FPM logs wrong levels
  • Fix panic when installing the local CA and the system trust store cannot be found
  • Fix panic when a file/dir is not accessible when discovering PHP versions
  • Add support for lts, stable, next, and previous as supported versions on symfony new
  • Rename security:check to check:security
  • Add automatic composer download when not available on symfony new and symfony composer
  • Add check:requirements

Newest issues and pull requests

They talked about us

Upcoming Symfony Events

Call to Action


Be trained by Symfony experts - 2019-08-19 Clichy - 2019-08-19 Clichy - 2019-08-19 Clichy

A Week of Symfony #660 (19-25 August 2019)

$
0
0

This week, Symfony development activity focused on internal features such as testing Symfony with the upcoming PHP 7.4 version, adding return types to generated containers, adding parameter types and return types to the entire codebase and adding support for Twig 3.

Symfony development highlights

This week, 86 pull requests were merged (72 in code and 14 in docs) and 35 issues were closed (31 in code and 4 in docs). Excluding merges, 35 authors made 5,387 additions and 3,276 deletions. See details for code and docs.

3.4 changelog:

  • 8069b58: fixed inconsistent return points
  • 9672f4c: [Router] fixed TraceableUrlMatcher behaviour with trailing slash
  • 26be947: Test Symfony with PHP 7.4 on Travis CI
  • 118dfa0: [Form] avoid extra call to get config in PropertyPathMapper

4.3 changelog:

  • 3aceb6d: [FrameworkBundle] fixed handling for session parameters
  • c3ccd2a: [Config] added handling for ignored keys in ArrayNode::mergeValues
  • 58439e3: [Mime] trim and remove line breaks from NamedAddress name arg
  • 46b944f: [FrameworkBundle] fixed BrowserKit assertions to make them compatible with Panther
  • dd153d8: [HttpKernel] do not extend the new SF 4.3 ControllerEvent so we can make it final

4.4 changelog:

  • 7bdeff0: [Mailer] simplified the way TLS/SSL/STARTTLS work
  • ce37267: [Mailer] removed the auth mode DSN option and support in the eSMTP transport
  • c098374: [Ldap] made LdapUser implement EquatableInterface
  • b681e93: [DependencyInjection] added return-types to generated containers
  • a9ace36: [Monolog] fixed ElasticsearchLogstashHandler with Monolog 2+
  • b253f25: [HttpFoundation] precalculate session expiry timestamp
  • 31b668b, 7eb5fee, 22319a9, 47322db, 5255ab8, 0fa1246: added more return types to the codebase
  • b795464: [ErrorHandler] registered basic exception handler to handle early failures
  • 5a753b1: [Messenger] removed patch release BC layer of durable and expiring delay
  • b36961c: [Mime] removed NamedAddress
  • 451daa0: [TwigBridge] mark all classes extending twig as final
  • 7046cac: [Translation] deprecated support for null locales
  • 9475b2e: [Intl] made polyfill classes abstract
  • 46b944f: [FrameworkBundle] fixed BrowserKit assertions to make them compatible with Panther
  • f499083: [HttpKernel] deprecated global dir to load resources from
  • 35673b8: [VarExporter] fixed support for PHP 7.4
  • a77e326: [DomCrawler] added Crawler::matches(), ::closest(), ::outerHtml()
  • 8c2e128: [Mime] added Address::fromString
  • 123418e: [HttpClient] added TraceableHttpClient and WebProfiler panel
  • dc8d470: [FrameworkBundle] improved the redirect config when using RedirectController
  • 5b3028a: [PhpUnitBridge] bumped SYMFONY_PHPUNIT_VERSION
  • 610a4e9: [SecurityGuard] deprecate returning non-boolean values from checkCredentials()

Master changelog:

  • 4fc0504: [TwigBridge] added support for Twig 3

Newest issues and pull requests

They talked about us

Upcoming Symfony Events

Call to Action


Be trained by Symfony experts - 2019-08-26 Lyon - 2019-09-2 Clichy - 2019-09-2 Clichy

Symfony 3.4.31 released

$
0
0

Symfony 3.4.31 has just been released. Here is a list of the most important changes:

  • bug #33335 [DependencyInjection] Fixed the getServiceIds implementation to always return aliases (@pdommelen)
  • bug #33244 [Router] Fix TraceableUrlMatcher behaviour with trailing slash (@Xavier Leune)
  • bug #33172 [Console] fixed a PHP notice when there is no function in the stack trace of an Exception (@fabpot)
  • bug #33157 Fix getMaxFilesize() returning zero (@ausi)
  • bug #33139 [Intl] Cleanup unused language aliases entry (@ro0NL)
  • bug #33066 [Serializer] Fix negative DateInterval (@jderusse)
  • bug #33033 [Lock] consistently throw NotSupportException (@xabbuh)
  • bug #32516 [FrameworkBundle][Config] Ignore exceptions thrown during reflection classes autoload (@fancyweb)
  • bug #32981 Fix tests/code for php 7.4 (@jderusse)
  • bug #32992 [ProxyManagerBridge] Polyfill for unmaintained version (@jderusse)
  • bug #32933 [PhpUnitBridge] fixed PHPUnit 8.3 compatibility: method handleError was renamed to invoke (@karser)
  • bug #32947 [Intl] Support DateTimeInterface in IntlDateFormatter::format (@pierredup)
  • bug #32838 [FrameworkBundle] Detect indirect env vars in routing (@ro0NL)
  • bug #32918 [Intl] Order alpha2 to alpha3 mapping (@ro0NL)
  • bug #32902 [PhpUnitBridge] Allow sutFqcnResolver to return array (@VincentLanglet)
  • bug #32682 [HttpFoundation] Revert getClientIp @return docblock (@ossinkine)
  • bug #32910 [Yaml] PHP-8: Uncaught TypeError: abs() expects parameter 1 to be int or float, string given (@Aleksandr Dankovtsev)
  • bug #32870 #32853 Check if $this->parameters is array. (@ABGEO07)
  • bug #32868 [PhpUnitBridge] Allow symfony/phpunit-bridge > 4.2 to be installed with phpunit 4.8 (@jderusse)
  • bug #32767 [Yaml] fix comment in multi line value (@soufianZantar)
  • bug #32790 [HttpFoundation] Fix getMaxFilesize (@bennyborn)
  • bug #32796 [Cache] fix warning on PHP 7.4 (@jpauli)
  • bug #32806 [Console] fix warning on PHP 7.4 (@rez1dent3)
  • bug #32809 Don't add object-value of static properties in the signature of container metadata-cache (@arjenm)
  • bug #30096 [DI] Fix dumping Doctrine-like service graphs (bis) (@weaverryan, @nicolas-grekas)
  • bug #32799 [HttpKernel] do not stopwatch sections when profiler is disabled (@Tobion)

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-08-26 Lyon - 2019-09-2 Clichy - 2019-09-2 Clichy

Symfony 4.3.4 released

$
0
0

Symfony 4.3.4 has just been released. Here is a list of the most important changes:

  • bug #33335 [DependencyInjection] Fixed the getServiceIds implementation to always return aliases (@pdommelen)
  • bug #33298 [Messenger] Stop worker when it should stop (@tienvx)
  • bug #33292 [VarExporter] fix support for PHP 7.4 (@nicolas-grekas)
  • bug #33282 [HttpKernel] Do not extend the new SF 4.3 ControllerEvent so we can make it final (@Tobion)
  • bug #33278 [FrameworkBundle] Fix BrowserKit assertions to make them compatible with Panther (@dunglas)
  • bug #33216 [Mime] Trim and remove line breaks from NamedAddress name arg (@maldoinc)
  • bug #33124 [Config] Add handling for ignored keys in ArrayNode::mergeValues. (@Alexandre Parent)
  • bug #33244 [Router] Fix TraceableUrlMatcher behaviour with trailing slash (@Xavier Leune)
  • bug #33232 Fix handling for session parameters (@vkhramtsov)
  • bug #32497 [Messenger] DispatchAfterCurrentBusMiddleware does not cancel messages from delayed handlers (@Nyholm, @BastienClement)
  • bug #33127 [Messenger] make delay exchange and queues durable like the normal ones by default (@Tobion)
  • bug #33210 [Mailer] Don't duplicate addresses in Sendgrid Transport (@pierredup)
  • bug #33172 [Console] fixed a PHP notice when there is no function in the stack trace of an Exception (@fabpot)
  • bug #33157 Fix getMaxFilesize() returning zero (@ausi)
  • bug #33139 [Intl] Cleanup unused language aliases entry (@ro0NL)
  • bug #33126 [SecurityBundle] display the correct class name on the deprecated notice (@maxhelias)
  • bug #33093 [EventDispatcher] wrong Request class (@maxhelias)
  • bug #33092 [DependencyInjection] Improve an exception message (@fabpot)
  • bug #32541 [HttpKernel] trim the leading backslash in the controller init (@Simperfit, @fabpot)
  • bug #32455 [HttpFoundation] Clear invalid session cookie (@Toflar)
  • bug #33066 [Serializer] Fix negative DateInterval (@jderusse)
  • bug #33045 Make HttpClientTestCase compatible with PHPUnit8 (@jderusse)
  • bug #33033 [Lock] consistently throw NotSupportException (@xabbuh)
  • bug #33022 [HttpClient] Remove CURLOP _CONNECTTIMEOU _MS curl opt (@lyrixx)
  • bug #32516 [FrameworkBundle][Config] Ignore exceptions thrown during reflection classes autoload (@fancyweb)
  • bug #33010 [TwigBridge] pass translation parameters to the trans filter (@xabbuh)
  • bug #32981 Fix tests/code for php 7.4 (@jderusse)
  • bug #32986 [Mime] fixed wrong mimetype (@rjwebdev)
  • bug #32992 [ProxyManagerBridge] Polyfill for unmaintained version (@jderusse)
  • bug #32989 [HttpClient] Declare $active first to prevent weird issue (@Kocal)
  • bug #32999 Added correct plural for box -> boxes (@cinamo)
  • bug #32933 [PhpUnitBridge] fixed PHPUnit 8.3 compatibility: method handleError was renamed to invoke (@karser)
  • bug #32947 [Intl] Support DateTimeInterface in IntlDateFormatter::format (@pierredup)
  • bug #32919 [Intl] Order alpha2 to alpha3 mapping + phpdoc fixes (@ro0NL)
  • bug #32792 [Messenger] Fix incompatibility with FrameworkBundle <4.3.1 (@chalasr)
  • bug #32836 [Messenger] Removed named parameters and replaced with ? placeholders for sqlsrv compatibility (@David Legatt)
  • bug #32838 [FrameworkBundle] Detect indirect env vars in routing (@ro0NL)
  • bug #32918 [Intl] Order alpha2 to alpha3 mapping (@ro0NL)
  • bug #32902 [PhpUnitBridge] Allow sutFqcnResolver to return array (@VincentLanglet)
  • bug #32814 Create mailBody with only attachments part present (@srsbiz)
  • bug #32682 [HttpFoundation] Revert getClientIp @return docblock (@ossinkine)
  • bug #32910 [Yaml] PHP-8: Uncaught TypeError: abs() expects parameter 1 to be int or float, string given (@Aleksandr Dankovtsev)
  • bug #32870 #32853 Check if $this->parameters is array. (@ABGEO07)
  • bug #32899 [Mailer] fix wrong error message when connection closes unexpectedly (@fabpot)
  • bug #32895 [Mailer] Fix error not being thrown properly (@fabpot)
  • bug #32868 [PhpUnitBridge] Allow symfony/phpunit-bridge > 4.2 to be installed with phpunit 4.8 (@jderusse)
  • bug #32823 [HttpClient] Preserve the case of headers when sending them (@nicolas-grekas)
  • bug #32767 [Yaml] fix comment in multi line value (@soufianZantar)
  • bug #32790 [HttpFoundation] Fix getMaxFilesize (@bennyborn)
  • bug #32796 [Cache] fix warning on PHP 7.4 (@jpauli)
  • bug #32806 [Console] fix warning on PHP 7.4 (@rez1dent3)
  • bug #32809 Don't add object-value of static properties in the signature of container metadata-cache (@arjenm)
  • bug #32708 Recompile container when translations directory changes (@pierredup)
  • bug #32722 [DependencyInjection] Fix bindings and tagge _locator (@deguif)
  • bug #32802 Make sure trac _level is always defined (@dbu)
  • bug #30096 [DI] Fix dumping Doctrine-like service graphs (bis) (@weaverryan, @nicolas-grekas)
  • bug #32799 [HttpKernel] do not stopwatch sections when profiler is disabled (@Tobion)
  • bug #32631 [Messenger] expire delay queue and fix aut _setup logic (@Tobion)
  • bug #32641 [Messenger] Retrieve table default options from the SchemaManager (@vincenttouzet)

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-08-26 Lyon - 2019-09-2 Clichy - 2019-09-2 Clichy

SymfonyLive London is in 3 weeks, will you be there?

$
0
0

The SymfonyLive London conference is only 3 weeks away! Did you take your ticket yet? Late registration is still open for a few days, get your conference ticket at 219£ until September 6th. After that day, the price will increase! Secure your seat now at the best price to attend the 8th edition of the best Symfony conference in London!

On September 12th, we organize pre-conference workshops to help you improve your PHP and Symfony skills. You can choose one workshop topic among the 3 workshops we offer:

  • “Practical Design Patterns with Symfony” by Titouan Galopin,

  • “Building API-driven apps with API Platform” by Kévin Dunglas,

  • “Getting ready for Symfony 5” by Nicolas Grekas.

If you are thinking of registering for a workshop, don’t wait any longer and book your combo ticket (workshop and conference) before there are no seats left anymore. Workshop tickets cannot be sold separately from the conference tickets.

Still having doubts in joining SymfonyLive London? Have a look at the incredible speaker line-up and discover all the fabulous talks you’ll be able to attend on September 13th!

Last year, Fabien Potencier talked about the Mailer component which was released in Symfony 4.3. This year, he is coming back with yet another new Symfony Component which will be part of Symfony 4.4! Can you guess what this component is going to be about? One hint: this talk is part of his series of talks about going back to the basics.

Check out the entire conference agenda and all the talks' details of each presentation!

Will you join the party? If so, hurry up to take your conference ticket or combo ticket pre-conference workshop and conference before the price change on September 6th.

See you at the conference!


Be trained by Symfony experts - 2019-09-2 Clichy - 2019-09-2 Clichy - 2019-09-4 Clichy
Viewing all 3049 articles
Browse latest View live