Magento Imagine 2016 – Deep Dive Sessions

Magento Imagine 2016 is finally over after waiting months for it to start. It exceeded our expectations as always, and we are already looking forward for next year’s conference!

There were some exciting announcements, such as:

  1. The new marketplace for M2 extensions.
  2. Magento Enterprise Cloud Edition.
  3. Magento 2.1 with a lot of new exciting features (Launching in June 2016).

In this post, I will discuss only the Magento 2 deep dive track. There were three Deep Dive sessions, each with their own syllabus and speakers:

The first session showed off some of the new features available in the new marketplace, such as the option for buying extensions through it (the marketplace now takes credit card and Paypal payments), the ability to view and manage technology provider profiles, and the option for submitting encrypted extensions, among others.

2016-04-11 10.02.09

Every extension uploaded to the marketplace goes through a 3 level review process:

  1. Technical review: Package validation, plagiarism check, coding standards and security malware check
  2. Marketing review: Business value, unique functionality check, marketing description
  3. Extension verification program: Documentation, functional testing, and coding standards

Furthermore, a support middle layer has been added between the extension user and the extension provider, so whenever an extension user contacts the marketplace, their support request will only be forwarded to the extension provider if Magento support can’t solve it. For example, Magento support will deal with all website issues, download/install issues and refund requests, whereas all issues after installation will be forwarded to the extension provider.

Selection_002

Marketplace Payment page

Then, we quickly went through some of Magento 2 development practices, such as how to use dependency injection and a small glimpse of how to use the new testing framework for writing unit tests, integration tests and functional tests. Magento 2 ships ready for testing and with its own tests for core functionality.

Additionally, Magento 2 comes with native support for Varnish and PHP name spaces along with a PSR-2 fixer tool, which as the name implies it helps developers to make sure they are working inline with PSR-2 code standards.

It also comes with a great built in command line tool, which is a great replacement for n98-magerun, and it is really powerful. This tool allows us to install Magento, run cron jobs, flush caches among other things via the command line.

Magento 2 can now be installed either via Composer or by downloading a Zip file including all of its dependencies. There’s also a Vagrant box available for developers at https://github.com/ryanstreet/magento2-vagrant in order to get started quicker with it.

There’s three different application modes for deploying Magento 2 applications:

  • Default mode: for very small merchants and just for quickly checking it out in general
  • Development mode: for improved debugging and error printing.
  • Production mode: for maximum performance.

The Magento 2 plugin for PHPStorm is an absolute must for working with Magento 2. It allows you to switch between the code and the XML configuration files with just one click. It also provides smart code completion and reference navigation.

The second session in the Deep Dive track covered the following topics:

Frontend development improvements: multi level theme inheritance, a CSS preprocessor, layout containers, asset compilation and the new directory structure with some nice examples.

Integration strategies: Magento 2 comes with far more APIs than Magento 1. The following APIs are now available out of the box: Catalog, Inventory, Search, Cart, CMS, Order, Tax and Customer APIs. It’s also easier to create custom API by writing service contracts, which are mere PHP interfaces. Magento also have plans to launch many more APIs in the near future and are working on these as we write this.

Performance Updates: Magento 2 comes with its own performance enhancements, such as framework enhancements (single responsibility principle and object decomposition), client side rendering, asynchronous requests, and some modules for profiling, monitoring and debugging, such as New Relic and Zray. Magento 2 was benchmarked against Magento 1, producing much better performance results especially while using PHP 7, so there is no longer any doubt that PHP 7 must be used with Magento 2.

The final session covered the Magento 2 migration tools currently available for migrating Magento 1 codebases into Magento 2:

Data migration tool: It allows you to migrate data only (customers, orders, products, etc). The database schema is not migrated, because the database has to be generated from scratch via Magento 2 setup scripts prior to migrating any data or code.

Codebase migration tool: This tool allows you to migrate your Magento 1 modules, including directory structure, configuration, layout updates and PHP files. The theme cannot be migrated due to the huge changes done on this side to the theme directory structure.

The deep dive tracked provided enough knowledge for new developers to get started easily with Magento 2, so it was an amazing opportunity to be able to watch this live in Vegas.