{"id":58617,"date":"2018-12-21T11:32:05","date_gmt":"2018-12-21T19:32:05","guid":{"rendered":"https:\/\/oroinc.com\/b2b-ecommerce\/?p=58617"},"modified":"2019-11-20T18:50:12","modified_gmt":"2019-11-21T02:50:12","slug":"latest-symfony-news-and-advancements-from-symfonycon-2018","status":"publish","type":"post","link":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/","title":{"rendered":"Latest Symfony News from SymfonyCon 2018 &#8211; OroCommerce Blog"},"content":{"rendered":"<p><span style=\"font-weight: 400\">Being one of the most popular PHP frameworks in the world, Symfony is also a vibrant community of over 600,000 developers from more than 120 countries. It\u2019s not surprising that each year SymfonyCon continues to grow its audience and has no shortage of exciting news and developments to announce. After all, Symfony is not just a PHP framework &#8211; it is also a rich and evolving set of extremely useful tools used by PHP developers on a daily basis. <\/span><a style=\"font-size: 16px\" href=\"https:\/\/symfony.com\/doc\/current\/setup\/flex.html\">Symfony Flex<\/a><span style=\"font-weight: 400\"> or <\/span><a style=\"font-size: 16px\" href=\"https:\/\/symfony.com\/cloud\/\">Symfony Cloud<\/a><span style=\"font-weight: 400\"> are just a few recent examples of its modern capabilities.\u00a0<\/span><span style=\"font-weight: 400\">So, this year roughly 1,000 Symfony professionals got together in <\/span><a href=\"https:\/\/lisbon2018.symfony.com\/\"><span style=\"font-weight: 400\">Lisbon, Portugal<\/span><\/a><span style=\"font-weight: 400\"> to find out all the latest that\u2019s happened to Symfony this year. With the holiday season right around the corner, this event has been a perfectly timed come-together moment for the 2018 Symfony Community. As usual, the Oro team was there, and here is our recap of why everybody loved the event.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Event Details and Speakers<\/span><\/h2>\n<h2><span style=\"font-weight: 400\">Keynote &#8211; Fabien Potencier<\/span><\/h2>\n<p><span style=\"font-weight: 400\">The first day of the conference started with a keynote presented by Fabien Potencier, the founder of Blackfire, SensioLabs, and Symfony itself. His topic was the new <\/span><a href=\"https:\/\/symfony.com\/cloud\/download\"><span style=\"font-weight: 400\">Symfony Local Server binary<\/span><\/a><span style=\"font-weight: 400\"> and how it helps manage both local environments and deployment to the production servers. <\/span><\/p>\n<p><span style=\"font-weight: 400\">First Fabien briefly compared the states of local web servers with Symfony and explained the reasons behind creating the new tool. He pointed out that the ideal setup should be fast, easy to use, and support remote services, like Docker, but most of all, it should work well with the major platforms, like Linux, MacOs or Windows.<\/span><\/p>\n<p><span style=\"font-weight: 400\">To enable all of that, the new tool offers many features, which are already functional and available to the public. One new feature is the \u201csymfony server:start\u201d command, which allows a developer to start a new local web server that detects the best possible backend. The algorithm first checks whether PHP-FPM can be run. If not, then it fallbacks to PHP-CGI (with the support of FastCGI) and if there is no available configuration, it runs the PHP built-in web server at as last resort. Another highlight of this new tool is the \u201csymfony server:log\u201d command, which can help you tail all the application and server logs with the normalized output. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Finally, Fabien showed us a practical example of how the new Symfony Cloud service, when fully integrated with the Symfony binary, makes deployment, bug-fixing, and debugging routines on the production servers so much easier than ever before. Read more <\/span><a href=\"https:\/\/symfony.com\/cloud\/\"><span style=\"font-weight: 400\">here<\/span><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-58633\" src=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-7.jpg\" alt=\"symfony 7\" width=\"3264\" height=\"2448\" srcset=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-7.jpg 3264w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-7-613x460.jpg 613w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-7-768x576.jpg 768w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-7-587x440.jpg 587w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-7-280x210.jpg 280w\" sizes=\"auto, (max-width: 3264px) 100vw, 3264px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Slides: <\/span><a href=\"https:\/\/speakerdeck.com\/fabpot\/symfony-local-web-server-dot-dot-dot-reloaded\"><span style=\"font-weight: 400\">https:\/\/speakerdeck.com\/fabpot\/symfony-local-web-server-dot-dot-dot-reloaded<\/span><\/a><\/p>\n<h2><span style=\"font-weight: 400\">Knowing Your State Machines &#8211; Tobias Nyholm<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Tobias Nyholm took the stage on this one and gave the audience an in-depth presentation on the <\/span><a href=\"https:\/\/symfony.com\/doc\/current\/components\/workflow.html\"><span style=\"font-weight: 400\">Workflow component.<\/span><\/a><span style=\"font-weight: 400\"> That was a must-attend talk for the Oro team since we use <\/span><a href=\"https:\/\/doc.oroinc.com\/1.6\/user\/back-office\/system\/workflows\/\"><span style=\"font-weight: 400\">workflows <\/span><\/a><span style=\"font-weight: 400\">a lot in our products. A workflow is a sequence of steps or rules applied to a process from its initiation to completion, and this concept is broadly used in a variety of business applications, specifically eCommerce applications. <\/span><\/p>\n<p><span style=\"font-weight: 400\">To his credit, Tobias had a very well-balanced presentation. Before diving into the mechanics of \u00a0the Workflow component, he made a solid introduction to its basic concepts, such as graphs, workflows, and state machines. He supported his technical overview with some straightforward real-life examples, like traffic lights or elevator doors, and kept the audience tuned in from start to finish. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Among the most useful guidelines from Tobias were how to define workflows in Symfony via yaml configuration, how to use its events, and how to integrate workflows with the Symfony Security component. His last example referred to a typical eCommerce use case of creating an order and illustrated the related workflow, comprising 4 common states (order created, item added, shipping added and order confirmed) and 3 transitions (add item, add shipping, checkout).<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-58632\" src=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-6.jpg\" alt=\"symfony 6\" width=\"3264\" height=\"2448\" srcset=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-6.jpg 3264w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-6-613x460.jpg 613w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-6-768x576.jpg 768w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-6-587x440.jpg 587w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-6-280x210.jpg 280w\" sizes=\"auto, (max-width: 3264px) 100vw, 3264px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Slides: <\/span><a href=\"https:\/\/www.slideshare.net\/TobiasNyholm\/knowing-your-state-machines-symfonycon-lisbon\"><span style=\"font-weight: 400\">https:\/\/www.slideshare.net\/TobiasNyholm\/knowing-your-state-machines-symfonycon-lisbon<\/span><\/a><br \/>\n<strong><br \/>\n<\/strong><\/p>\n<h2><span style=\"font-weight: 400\">Using Symfony Forms with Rich Domain Models &#8211; Christopher Hertel, Christian Flothmann<\/span><\/h2>\n<p><span style=\"font-weight: 400\">During this presentation, the speakers spoke about different ways of integrating rich domain models into the Symfony Form component. To make the presentation more interactive, they also used a simple product CRUD use case. <\/span><\/p>\n<p><span style=\"font-weight: 400\">The first step was to create a standard Symfony form for Product entity and a controller to process the request. At this point we had our product data but no business logic. Then we went on to refactor the Product class to be a Rich Domain Model and integrate it with the form. We started with the easiest solution, which is to create a separate Data Transfer Object (DTO) and map it to the rich model. It worked, but as a drawback we would need to create a DTO class for every single domain model in our solution, making it quite hard to maintain. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Using Symfony DataMappers helps eliminate maintenance issues but it still requires an additional layer of a \u201cglue code\u201d. So, after keeping everyone is suspense, Christopher and Christian finally introduced their <\/span><a href=\"https:\/\/github.com\/sensiolabs-de\/rich-model-forms-bundle\"><span style=\"font-weight: 400\">new bundle<\/span><\/a><span style=\"font-weight: 400\"> that handles forms with rich domain models without having to write extra code. What a relief!<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-58631\" src=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-5.jpg\" alt=\"symfony 5\" width=\"3264\" height=\"2448\" srcset=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-5.jpg 3264w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-5-613x460.jpg 613w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-5-768x576.jpg 768w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-5-587x440.jpg 587w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-5-280x210.jpg 280w\" sizes=\"auto, (max-width: 3264px) 100vw, 3264px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Slides: <\/span><a href=\"https:\/\/speakerdeck.com\/el_stoffel\/using-symfony-forms-with-rich-domain-models-cafc2b0d-2d86-4314-9d8d-d154a26944bf\"><span style=\"font-weight: 400\">https:\/\/speakerdeck.com\/el_stoffel\/using-symfony-forms-with-rich-domain-models-cafc2b0d-2d86-4314-9d8d-d154a26944bf<\/span><\/a><\/p>\n<h2><span style=\"font-weight: 400\">Building global web apps with multi-region hosting &#8211; Jordi Boggiano<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Jordi, using two different use cases of two different projects (packagist and teamup.com), was talking about hosting applications with a multi-regional setup. In such applications, having users in multiple locations may affect latency and overall performance of the application. Thus, in order to deliver the best possible UX, the application servers should be located in multiple places around the world. The funny fact is that usually developers and project stakeholders do not suffer from latency &#8211; they are often located in one region, usually the same one where the infrastructure sits, which ensures a decent response time for them. Another case for a multi-regional architecture is for supporting redundancy against a regional host failure. In case of any availability problems, there is always an independent server at a different location that can be used instead of a failed master. <\/span><\/p>\n<p><span style=\"font-weight: 400\">So, getting back to the examples from packagist and teamp.com: the requirements for the projects included high reliability, low latency, simplicity, and global support. If we are talking about packagist &#8211; could you imagine pushing changes to a repository and pulling back a different state? That would be embarrassing. That\u2019s why Jordi showed us how to tackle this potential issue with the configuration of different replicas hosted across EU, North America, and Asia. Regarding teamup.com, Jordi showed the process of setting up a different configuration, which included terraform + AWS, proxies, and different strategies for GET and POST requests.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Throughout his presentation, the speaker emphasized that going blindly into multi-regional hosting is not a one-size-fits-all solution. Every single use case should be analyzed separately, taking into account the target audience location, requirements for responsiveness, and, of course, an appropriate technology stack.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-58638\" src=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-4.jpg\" alt=\"symfony 4\" width=\"3264\" height=\"2448\" srcset=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-4.jpg 3264w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-4-613x460.jpg 613w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-4-768x576.jpg 768w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-4-587x440.jpg 587w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-4-280x210.jpg 280w\" sizes=\"auto, (max-width: 3264px) 100vw, 3264px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Slides: <\/span><a href=\"http:\/\/slides.seld.be\/?file=2018-12-06+Building+global+web+apps+with+multi-region+hosting.html\"><span style=\"font-weight: 400\">http:\/\/slides.seld.be\/?file=2018-12-06+Building+global+web+apps+with+multi-region+hosting.html<\/span><\/a><br \/>\n<strong><br \/>\n<\/strong><\/p>\n<h2><span style=\"font-weight: 400\">JeoPHPardy (game activity) &#8211; Jeremy Mikola<\/span><\/h2>\n<p><span style=\"font-weight: 400\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-58634\" src=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-8.jpg\" alt=\"symfony 8\" width=\"4640\" height=\"2610\" srcset=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-8.jpg 4640w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-8-720x405.jpg 720w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-8-768x432.jpg 768w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-8-760x428.jpg 760w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-8-360x203.jpg 360w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-8-300x170.jpg 300w\" sizes=\"auto, (max-width: 4640px) 100vw, 4640px\" \/><\/span><\/p>\n<p><span style=\"font-weight: 400\">At the end of the first day there was a JeoPHPardy game session for volunteers. We couldn\u2019t miss out on such an opportunity, so one of the Oro developers immediately jumped on the stage. <\/span><\/p>\n<p><span style=\"font-weight: 400\">This year the game was divided into 5 categories:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">GarageTrack &#8211; different questions about the first day on SymfonyCon2018 (topics, presenters etc.)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">PHP 7.3 &#8211; the first day of SymfonyCon 2018 was also the release day for PHP 7.3, so this category was about the new features that came with the new release.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Elefonts &#8211; guess which font is being represented by elephant drawings, some of which were obvious while the others were super tricky.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Bem-vindo a Lisbon &#8211; \u201cWelcome to Lisbon\u201d, featuring questions about this beautiful city, its history, and what it is famous for.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Composer Snippets &#8211; guess which project this composer.json comes from, which was a super geeky fun time! Here we got our most favorite question &#8211; a blank page. Know the answer? Of course, it\u2019s a composer.json for WordPress!<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Some of the questions were quite difficult but, in the end, it was all about having fun, and have fun we did.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Symfony 4 internals &#8211; Tobias Nyholm<\/span><\/h2>\n<p><span style=\"font-weight: 400\">The second presentation from Tobias Nyholm was about the internals of Symfony 4 but could be just as well called \u201cInternals of Symfony\u201d. The presentation was part of the \u201cBeginner track\u201d, so instead of diving deep into details he gave us a broad overview of the whole process of displaying a requested page in the browser by illustrating specific use cases and explaining how they can be properly addressed.<\/span><\/p>\n<p><span style=\"font-weight: 400\">This way he started from the simple PHP \u201cHello world\u201d script and then went on by gradually introducing new layers of functionality and refactoring his code to end up with something that he called \u201cSimple Symfony\u201d.<\/span><\/p>\n<p><span style=\"font-weight: 400\">We were genuinely impressed by how he managed to explain the essential basics of Symfony in such a condensed presentation:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Controllers<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Middlewares<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Cache<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Container<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Router<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Events<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Security (Voters)<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Debug toolbar<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">If you\u2019d like to try building your own framework (just to prove that you can or to understand how most of the frameworks work), you can follow Tobias\u2019 slides (the link below) or another good Symfony article at <\/span><a href=\"https:\/\/symfony.com\/doc\/current\/create_framework\/index.html\"><span style=\"font-weight: 400\">https:\/\/symfony.com\/doc\/current\/create_framework\/index.html<\/span><\/a> <span style=\"font-weight: 400\"><br \/>\n<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-58644\" src=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Presentation2-1.png\" alt=\"\" width=\"1280\" height=\"720\" srcset=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Presentation2-1.png 1280w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Presentation2-1-720x405.png 720w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Presentation2-1-768x432.png 768w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Presentation2-1-760x428.png 760w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Presentation2-1-360x203.png 360w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Presentation2-1-300x170.png 300w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Slides: <\/span><a href=\"https:\/\/www.slideshare.net\/TobiasNyholm\/symfony4-internals-125268511\"><span style=\"font-weight: 400\">https:\/\/www.slideshare.net\/TobiasNyholm\/symfony4-internals-125268511<\/span><\/a><\/p>\n<h2><span style=\"font-weight: 400\">What\u2019s a typical Symfony 4.2 application like? &#8211; Nicolas Grekas<\/span><\/h2>\n<p><span style=\"font-weight: 400\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-58637\" src=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-3.jpg\" alt=\"symfony 3\" width=\"4640\" height=\"2610\" srcset=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-3.jpg 4640w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-3-720x405.jpg 720w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-3-768x432.jpg 768w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-3-760x428.jpg 760w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-3-360x203.jpg 360w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-3-300x170.jpg 300w\" sizes=\"auto, (max-width: 4640px) 100vw, 4640px\" \/><\/span><\/p>\n<p><span style=\"font-weight: 400\">Nicolas Grekas did a great job explaining the new features of Symfony 4.2 and sharing the best practices of using them.<\/span><\/p>\n<p><span style=\"font-weight: 400\">One of the most useful features is the ability to <\/span><a href=\"https:\/\/symfony.com\/blog\/new-in-symfony-4-2-autowiring-by-type-and-name\"><span style=\"font-weight: 400\">autowire services by type and name<\/span><\/a><span style=\"font-weight: 400\"> based on already existing <\/span><a href=\"https:\/\/symfony.com\/doc\/current\/service_container\/autowiring.html\"><span style=\"font-weight: 400\">autowiring<\/span><\/a><span style=\"font-weight: 400\"> and <\/span><a href=\"https:\/\/symfony.com\/doc\/current\/service_container.html#the-autoconfigure-option\"><span style=\"font-weight: 400\">autoconfiguration<\/span><\/a><span style=\"font-weight: 400\">. Now developers can define even fewer services manually and rely on the built-in automatically generated configuration instead. <\/span><\/p>\n<p><span style=\"font-weight: 400\">In addition to this new feature, Symfony 4.2 has also improved debugging of autowiring by <\/span><a href=\"https:\/\/symfony.com\/blog\/new-in-symfony-4-2-better-autowiring-debug\"><span style=\"font-weight: 400\">upgrading a console command <\/span><i><span style=\"font-weight: 400\">debug:autowiring<\/span><\/i><\/a><span style=\"font-weight: 400\">.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Another large feature is the ability to <\/span><a href=\"https:\/\/symfony.com\/doc\/current\/configuration\/external_parameters.html\"><span style=\"font-weight: 400\">use environment variables to pass external parameters to application configuration<\/span><\/a><span style=\"font-weight: 400\">. This way developers can define parameters at a lower level (e.g. at the web server configuration) and not expose them directly at the application configuration.<\/span><\/p>\n<p><span style=\"font-weight: 400\">There is also a related improvement for the <\/span><i><span style=\"font-weight: 400\">.env<\/span><\/i><span style=\"font-weight: 400\"> files &#8211; now developers can define <\/span><a href=\"https:\/\/symfony.com\/blog\/new-in-symfony-4-2-define-env-vars-per-environment\"><span style=\"font-weight: 400\">multiple files with environment variables<\/span><\/a><span style=\"font-weight: 400\"> to have different values based on the environment. For example, some values can be overridden at a local setup or at the specific application environment (<\/span><i><span style=\"font-weight: 400\">dev \/ test<\/span><\/i><span style=\"font-weight: 400\">).<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Profiling your Symfony application &#8211; Michael Cullum<\/span><\/h2>\n<p><span style=\"font-weight: 400\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-58636\" src=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-2.jpg\" alt=\"symfony 2\" width=\"4640\" height=\"2610\" srcset=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-2.jpg 4640w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-2-720x405.jpg 720w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-2-768x432.jpg 768w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-2-760x428.jpg 760w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-2-360x203.jpg 360w, https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-2-300x170.jpg 300w\" sizes=\"auto, (max-width: 4640px) 100vw, 4640px\" \/><\/span><\/p>\n<p><span style=\"font-weight: 400\">Michael focused on basic topics about performance, why it is so important, why you are supposed to measure it, and when you should care about it. <\/span><\/p>\n<p><span style=\"font-weight: 400\">At the beginning he explained that taking extra care of performance is not always worth the time (i.e. for some backend page used once a month). Sometimes it\u2019s just cheaper\/faster to add additional server resources. <\/span><\/p>\n<p><span style=\"font-weight: 400\">Then he focused on the most obvious problems that can cause your application to have poor performance, like:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">running your application in a dev mode<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">running loads of small queries instead of few bigger ones<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">using any cache<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">not using \u201c-o\u201d switch for \u201ccomposer install\u201d<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400\">After covering the basics he moved on to the demo where he showed how blackfire.io can be used to find problems in your application. Michael added \u201cbadly performant\u201d calls to his application (\u201csleep()\u201d and empty loops) and found those places by profiling the app in blackfire. He also suggested adding a \u201cperformance test suite\u201d to your application for performance monitoring.<\/span><\/p>\n<p><span style=\"font-weight: 400\">At the end Michael mentioned other useful tools, such as tideways, datadog, new relic and answered a few questions about them, like which would be the best to use in a particular case.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Links:<\/span><\/p>\n<p><a href=\"https:\/\/blackfire.io\"><span style=\"font-weight: 400\">https:\/\/blackfire.io<\/span><\/a><\/p>\n<p><a href=\"https:\/\/tideways.com\"><span style=\"font-weight: 400\">https:\/\/tideways.com<\/span><\/a><\/p>\n<p><a href=\"https:\/\/newrelic.com\"><span style=\"font-weight: 400\">https:\/\/newrelic.com<\/span><\/a><\/p>\n<p><a href=\"https:\/\/www.datadoghq.com\"><span style=\"font-weight: 400\">https:\/\/www.datadoghq.com<\/span><\/a><\/p>\n<h2><span style=\"font-weight: 400\">Symfony\u2019s been only getting better<\/span><\/h2>\n<p><span style=\"font-weight: 400\">SymfonyCon Lisbon 2018 was a great experience and we are really glad that we could take part in it. It is such an amazing opportunity to meet the community and to meet the very same people who created the tools that we use every day, to ask questions, and share your own experiences. <\/span><\/p>\n<p><span style=\"font-weight: 400\">As always, the conference wrapped up with the \u201cYear of Symfony\u201d presentation, underscoring the obvious trend that the Symfony community is getting stronger and the framework itself is getting ever more powerful and complete (e.g., Messenger and Workflow components are now available). The next year\u2019s conference city was also revealed, so the Oro team is looking forward to seeing our Symfony fellows and friends there, at SymfonyCon 2019, Amsterdam.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Interested in Symfony and enterprise-grade web application development platform?\u00a0<\/span><span style=\"font-weight: 400\">Check out\u00a0<strong><a href=\"https:\/\/oroinc.com\/oroplatform\/?utm_source=content&amp;utm_medium=blog\">OroPlatform<\/a>\u00a0&#8211; <\/strong>the\u00a0open-source rapid application development platform.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Being one of the most popular PHP frameworks in the world, Symfony is also a vibrant community of over 600,000 developers from more than 120 countries. It\u2019s not surprising that each year SymfonyCon continues to grow its audience and has no shortage of exciting news and developments to announce. After all, Symfony is not just [&hellip;]<\/p>\n","protected":false},"author":38577,"featured_media":58622,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"ep_exclude_from_search":false,"footnotes":""},"categories":[6],"tags":[],"class_list":{"0":"post-58617","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-product-news-updates"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Latest Symfony News from SymfonyCon 2018 - OroCommerce Blog<\/title>\n<meta name=\"description\" content=\"It\u2019s not surprising that each year SymfonyCon continues to grow its audience. Read this year&#039;s summary by the Oro Team to see how the event turned out.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Latest Symfony News from SymfonyCon 2018 - OroCommerce Blog\" \/>\n<meta property=\"og:description\" content=\"It\u2019s not surprising that each year SymfonyCon continues to grow its audience. Read this year&#039;s summary by the Oro Team to see how the event turned out.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/\" \/>\n<meta property=\"og:site_name\" content=\"OroCommerce\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/OroCommerce-333319140210515\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-21T19:32:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-11-21T02:50:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-Conference-2018.png\" \/>\n\t<meta property=\"og:image:width\" content=\"750\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"msarandi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@orocommerce\" \/>\n<meta name=\"twitter:site\" content=\"@orocommerce\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"msarandi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/\"},\"author\":{\"name\":\"msarandi\",\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/#\/schema\/person\/cfd81a5e04e6dfd15b75be8e895d8287\"},\"headline\":\"Latest Symfony News from SymfonyCon 2018 &#8211; OroCommerce Blog\",\"datePublished\":\"2018-12-21T19:32:05+00:00\",\"dateModified\":\"2019-11-21T02:50:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/\"},\"wordCount\":2111,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/#organization\"},\"image\":{\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-Conference-2018.png\",\"articleSection\":[\"Product News &amp; Updates\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/\",\"url\":\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/\",\"name\":\"Latest Symfony News from SymfonyCon 2018 - OroCommerce Blog\",\"isPartOf\":{\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-Conference-2018.png\",\"datePublished\":\"2018-12-21T19:32:05+00:00\",\"dateModified\":\"2019-11-21T02:50:12+00:00\",\"description\":\"It\u2019s not surprising that each year SymfonyCon continues to grow its audience. Read this year's summary by the Oro Team to see how the event turned out.\",\"breadcrumb\":{\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#primaryimage\",\"url\":\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-Conference-2018.png\",\"contentUrl\":\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-Conference-2018.png\",\"width\":750,\"height\":500,\"caption\":\"Symfony Conference 2018\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/oroinc.com\/b2b-ecommerce\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Product News &amp; Updates\",\"item\":\"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/category\/product-news-updates\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Latest Symfony News and Advancements from SymfonyCon 2018\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/#website\",\"url\":\"https:\/\/oroinc.com\/b2b-ecommerce\/\",\"name\":\"OroCommerce\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/oroinc.com\/b2b-ecommerce\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/#organization\",\"name\":\"Oro Inc.\",\"url\":\"https:\/\/oroinc.com\/b2b-ecommerce\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2019\/11\/Oro-OLogo.png\",\"contentUrl\":\"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2019\/11\/Oro-OLogo.png\",\"width\":40,\"height\":40,\"caption\":\"Oro Inc.\"},\"image\":{\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/OroCommerce-333319140210515\/\",\"https:\/\/x.com\/orocommerce\",\"https:\/\/www.youtube.com\/channel\/UClxsA8HS9KGEEsvFRn7JkvQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/oroinc.com\/b2b-ecommerce\/#\/schema\/person\/cfd81a5e04e6dfd15b75be8e895d8287\",\"name\":\"msarandi\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Latest Symfony News from SymfonyCon 2018 - OroCommerce Blog","description":"It\u2019s not surprising that each year SymfonyCon continues to grow its audience. Read this year's summary by the Oro Team to see how the event turned out.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/","og_locale":"en_US","og_type":"article","og_title":"Latest Symfony News from SymfonyCon 2018 - OroCommerce Blog","og_description":"It\u2019s not surprising that each year SymfonyCon continues to grow its audience. Read this year's summary by the Oro Team to see how the event turned out.","og_url":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/","og_site_name":"OroCommerce","article_publisher":"https:\/\/www.facebook.com\/OroCommerce-333319140210515\/","article_published_time":"2018-12-21T19:32:05+00:00","article_modified_time":"2019-11-21T02:50:12+00:00","og_image":[{"width":750,"height":500,"url":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-Conference-2018.png","type":"image\/png"}],"author":"msarandi","twitter_card":"summary_large_image","twitter_creator":"@orocommerce","twitter_site":"@orocommerce","twitter_misc":{"Written by":"msarandi","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#article","isPartOf":{"@id":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/"},"author":{"name":"msarandi","@id":"https:\/\/oroinc.com\/b2b-ecommerce\/#\/schema\/person\/cfd81a5e04e6dfd15b75be8e895d8287"},"headline":"Latest Symfony News from SymfonyCon 2018 &#8211; OroCommerce Blog","datePublished":"2018-12-21T19:32:05+00:00","dateModified":"2019-11-21T02:50:12+00:00","mainEntityOfPage":{"@id":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/"},"wordCount":2111,"commentCount":0,"publisher":{"@id":"https:\/\/oroinc.com\/b2b-ecommerce\/#organization"},"image":{"@id":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#primaryimage"},"thumbnailUrl":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-Conference-2018.png","articleSection":["Product News &amp; Updates"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/","url":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/","name":"Latest Symfony News from SymfonyCon 2018 - OroCommerce Blog","isPartOf":{"@id":"https:\/\/oroinc.com\/b2b-ecommerce\/#website"},"primaryImageOfPage":{"@id":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#primaryimage"},"image":{"@id":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#primaryimage"},"thumbnailUrl":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-Conference-2018.png","datePublished":"2018-12-21T19:32:05+00:00","dateModified":"2019-11-21T02:50:12+00:00","description":"It\u2019s not surprising that each year SymfonyCon continues to grow its audience. Read this year's summary by the Oro Team to see how the event turned out.","breadcrumb":{"@id":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#primaryimage","url":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-Conference-2018.png","contentUrl":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2018\/12\/Symfony-Conference-2018.png","width":750,"height":500,"caption":"Symfony Conference 2018"},{"@type":"BreadcrumbList","@id":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/latest-symfony-news-and-advancements-from-symfonycon-2018\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/oroinc.com\/b2b-ecommerce\/"},{"@type":"ListItem","position":2,"name":"Product News &amp; Updates","item":"https:\/\/oroinc.com\/b2b-ecommerce\/blog\/category\/product-news-updates\/"},{"@type":"ListItem","position":3,"name":"Latest Symfony News and Advancements from SymfonyCon 2018"}]},{"@type":"WebSite","@id":"https:\/\/oroinc.com\/b2b-ecommerce\/#website","url":"https:\/\/oroinc.com\/b2b-ecommerce\/","name":"OroCommerce","description":"","publisher":{"@id":"https:\/\/oroinc.com\/b2b-ecommerce\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/oroinc.com\/b2b-ecommerce\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/oroinc.com\/b2b-ecommerce\/#organization","name":"Oro Inc.","url":"https:\/\/oroinc.com\/b2b-ecommerce\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/oroinc.com\/b2b-ecommerce\/#\/schema\/logo\/image\/","url":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2019\/11\/Oro-OLogo.png","contentUrl":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-content\/uploads\/sites\/3\/2019\/11\/Oro-OLogo.png","width":40,"height":40,"caption":"Oro Inc."},"image":{"@id":"https:\/\/oroinc.com\/b2b-ecommerce\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/OroCommerce-333319140210515\/","https:\/\/x.com\/orocommerce","https:\/\/www.youtube.com\/channel\/UClxsA8HS9KGEEsvFRn7JkvQ"]},{"@type":"Person","@id":"https:\/\/oroinc.com\/b2b-ecommerce\/#\/schema\/person\/cfd81a5e04e6dfd15b75be8e895d8287","name":"msarandi"}]}},"_links":{"self":[{"href":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-json\/wp\/v2\/posts\/58617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-json\/wp\/v2\/users\/38577"}],"replies":[{"embeddable":true,"href":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-json\/wp\/v2\/comments?post=58617"}],"version-history":[{"count":11,"href":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-json\/wp\/v2\/posts\/58617\/revisions"}],"predecessor-version":[{"id":80787,"href":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-json\/wp\/v2\/posts\/58617\/revisions\/80787"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-json\/wp\/v2\/media\/58622"}],"wp:attachment":[{"href":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-json\/wp\/v2\/media?parent=58617"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-json\/wp\/v2\/categories?post=58617"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oroinc.com\/b2b-ecommerce\/wp-json\/wp\/v2\/tags?post=58617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}