…and welcome to part 4 of my Magento Imagine 2017 retrospective! This time I’ll be covering the talks and presentations outside of the general sessions / keynotes from the final 2 days of the event.

First off though, if you missed either of the first 3 parts of the recap you check them out here:

 

Overview

As per the first recap of talks I wasn’t able to attend everything so I’ll only covering talks I was present at and these are mainly development / tech related talks.

 

Making Your Life Easier with the Magento 2 CLI

I was excited about this talk as the Magento CLI tool is one of my favourite new additions in Magento 2, having been a huge fan of Magerun (and still am with Magerun 2!)

 

The talk was presented by serial traveller Miguel Balparda of Nexcess / Turpentine fame and aside from the odd slide here or there in other talks this was the first time we had proper code (or the CLI to be precise) on screen, which I perhaps got a little over excited about…

 

The talk started with a good overview of the bin/magento CLI tool, which is based on the Symfony Console component, including how to list all available commands and and to use the –help function to see what arguments and options particular commands can/must be passed.

Next up was a quick overview of how to install Magento via the CLI tool, before a good overview of the cache management and indexing features, including a great explanation of the difference between cleaning and flushing the cache and my favourite tip about working with the cache locally:

 

Following that Miguel provided an overview of enabling, installing and upgrading modules before showing how managing maintenance mode has been much improved in Magento 2 by adding CLI control and IP address exceptions.

Next up was setting the Magento mode with an overview of the 3 modes and their differences:

 

Finally Miguel gave an overview of how developers can make their own commands for the bin/magento CLI tool using the well known Inchoo example, which prompted suggestions of Inchoo sponsorship! 😉

 

Following the talk there was a decent Q&A session where inevitably the question of bin/magento vs n98-magerun2.phar came up, with a very diplomatic response from Miguel:

 

Overall I felt this was great overview to the Magento CLI tool, but certainly aimed more at beginners, so for anyone that isn’t overly familiar with it yet I would definitely recommend checking out the slides.

 

Harnessing the Power of Composer in Magento 2

Next up was 2017 Magento Master Kristof Ringleff from Fooman to talk about making the best use of Composer with Magento 2.  This was probably my most anticipated talk of the event, tech wise, and I’d already had the privilege of having a good chat on the subject with Kristof the previous night at the opening party.

 

Kristof began by laying down the facts for why composer is such an important tool to able to properly manage our dependencies and ensure compatibility of packages between versions.  This was made clear by the fact alone that Magento 2 itself already has over 20 versions available (40 including Enterprise Edition) and with modules taken into account that is over 2000 and so far M2 is only just over a year old!

Add to this managing compatibility with multiple third party extensions and it’s easy to see how vital composer is to the modern toolset.

 

Following this Kristof outlined his vision of a future where app/code is no longer used due to the technical debt it brings and noted it would take the whole Magento ecosystem to be on board to realise this goal.

 

Kristof then helped dispel the myth that composer is too slow to use, noting the alternative of manually checking dependencies, plus also showed a tool that can help speed up composer by allowing for concurrent downloads.

I also have my own tip to aid with composer speed, especially for SIs like us that work on multiple projects, but inevitably download the majority of the same packages most of the time.

 

Most of us work with VM / container (i.e. file sync) based solutions such as Vagrant or Docker and one of our initial pain points was composer cache being inside the VM and therefore every new project or re-provisioned environment meant having to download every package afresh as the cache would be lost / not exist.

 

Therefore, I suggest also having PHP and Composer installed directly on your machine too and running all composer commands on your host machine so the cache is shared across all projects you work on.

 

I have seen some suggestions of the cache directory being sync’ed with the VM / container but this seems a bit overkill to me.

After this Kristof gave a brief run through making your own modules into composer packages and some tips on which dependencies your package should require, favouring individual modules, rather than headline Magento project versions.

 

This was followed with a whistle stop tour of using composer for installing Magento 2, how versioning in composer works (something I can never remember and leads me to constantly referencing the Composer documentation!) and recommendations for different dependency types.

 

Finally some examples and suggestions on creating bug fixes for issues with other packages by creating your own packages was shown before a lively Q&A opened up.

After the talk I hung back to catch up further with Kristof along with Andreas von StudnitzAlessandro Ronchi and others for a good debate over the use of app/code for modules local to a particular project (i.e. just for one client) and whilst everyone agreed in theory of the benefits Kristof put forward, practically for SI’s and agencies to make this move would potentially be too high a level of overhead to manage.  I’m still firmly on the fence here after hearing both sides of the argument, but it is something I’m currently thinking over.

Overall I think this was a bold, but much needed talk from Kristof that clearly engaged many people and prompted much debate, which is always a good thing in my opinion.  The slides are here if you want to see more.

 

PCI, ADA, and COPPA – OH MY: Managing Growing Compliance Burden in Digital Commerce

The final talk I attended on day 2 was from another 2017 Magento Master and presenter of MageTalk fame Phillip Jackson which focused on tips to manage compliance and regulations within ecommerce.

 

This talk perhaps didn’t have as high an amount of practical use for me personally as Phillip was clear it was mainly focused on US laws and regulations, however the overall concepts where still relevant and the case studies from Phillip’s agency Something Digital (SD) were particularly insightful.

First off Phillip explained the differences between compliance and regulation, with the former generally not being legal binding or enforced and less expensive to meet (think best practise), with the latter being the opposite.

A good example here was with how PCI (Payment Card Industry) compliance doesn’t actually carry any legal ramifications (i.e. from government), however if a merchant were to breach the terms of these it would almost certainly lead to penalisation in regards higher transaction fees or other measures from the bank.

Phillip then gave an overview of the types of compliance and regulations faced by merchants: PCI, ADA (American Disability Act), COPPA (Child Online Privacy and Protection Act) and the EU Privacy Directive and offered some advice on how to plan, set expectations and budget to meet the above,

 

Next up Phillip provided a really interesting insight as to the different types of disability or ‘persona spectrum’ as outlined by Microsoft and outlined the areas in which Magento 2 can help (and still needs help) in regards to the various compliance / regulation types.

 

Lastly Phillip ran through 2 case studies of projects that SD had undertaken with a heavy focus one on or more of the above compliances / regulations which highlighted just how seriously these guys take this stuff – very impressive!

 

The slides for this talk can be found here.

 

How Magento Front-end is Going from Zero to Hero

The first talk of day 3 (but also the last talk I attended) was hosted by Alex Somerville of Demac Media and Bartek Igielski of Snowdog and was focused on showcasing the journey frontend in Magento 2 has made from it’s rocky start with LESS, to the Snowdog SASS theme and frontools through to the future vision.

 

First off the guys gave some great reasons and statistics behind why SASS and not LESS is the way forward for frontend on Magento 2 and then applied the same to the Grunt vs Gulp debate, with one of the key points on both being the massive gulf community adoption / market share between each of the technologies.

Bartek also provided some examples of the oddities of LESS and some of the must have features SASS includes.

 

Following this Bartek provided a roadmap (but also part wishlist) for frontools including support for other package management tools, better JS listing, a fully featured replacement for the default static file deployment commands and PHP code sniffer integration.

Next up some potential future prospects for the SASS theme were outlined, with conversion to BEM having been reviewed, but scraped, in favour of a completely new theme with its own set of UI components, which is currently under development.  Further to this a completely headless (API) integration was also suggested as a further possible direction and whilst it was noted it meant cutting edge tools could be used it did rightly point out the level of involvement and upkeep this would require.

The final big announcement from the talk, and one that I think makes perfect sense to aid community involvement on the frontend, was the introduction of a new hashtag to be used purely for discussion of Magento frontend topics on social media: #magefront

 

After the talk there was an engaging Q&A session and with Alan Kent, Magento’s chief architect being present, it meant that we got some great insights into how Alan and his team are working closely with Alex, Bartek and others in the community to ensure the frontend of Magento 2 is headed in the right direction. However, Alan rightly pointed out that these decisions cannot be taken lightly and there will inevitably come a point where there will be some pain in order for some of these community projects to become part of the Magento core, with the how and when being the most important decision to make.

 

For more information on this talk see the slides here.

 

Summary

In contrast to day 1, where I felt the technical level was sometimes missing, these community lead talks, whilst not particularly low level either, covered some really good topics with plenty of thought provoking concepts outlined, highlighting the talent that we have in the Magento community.

So, now all the main talk content is covered I’ll next be moving on to some more of the ‘fun suff’ starting with some of the community engagement activities that took place, see you next time!