Chances of changes in Magento 2.0 extension development Gerhard Fobe Netresearch App Factory
Agenda Short questions Technical changes in Magento 2.0 extensions What will happens in the next time Chances Magento community have with non downwards compatible changes
Questions Did you already try Magento 2.0? Did you already try to create a Magento 2.0 extension? Do you have public Magento 1.0 extensions? When and how you will upgrade these extensions to Magento 2.0? Will you add some fixes / new features when you upgrade your extensions?
basic system changes higher/more modern system requirements PHP >=5.4 - no savemode, no magic quotes, no register globals - support of traits, closures, Late Static Bindings - support namespaces - short array syntax - sharthand form ternary operator - support for jump labels/goto! MySQL >=5.6 also Magento 2 will support other DBMS (MSSQL, Oracle)
basic system changes native use of Composer tool using of namespaces integrated testing frameworks and Tests of Magento 2 code documentation in the core jquery instead of Prototype
New structure of module no module.xml any longer (integrated in config.xml) => <active> and <depends> now in config.xml (before was in /etc/modules/modules.xml) no code pool (community local) any longer locale folder in module named i18n template folder in module named view
Magento 1.x app/code/local/ns/module/ app/etc/modules/ns_module.xml.../ns/module/block.../ns/module/controllers.../ns/module/model app/locale/de_de/ns_module.csv.../ns/module/etc/config.xml.../ns/module/sql/module_setup/ app/design/ skin/ Magento 2.0 app/code/ns/module/ <no module.xml>.../ns/module/block.../ns/module/controller.../ns/module/model.../ns/module/i18n/ns_module.csv.../ns/module/etc/config.xml.../ns/module/sql/module_setup/.../ns/module/view/.../ns/module/view/web
config.xml seperate xml files for parts and frontend/adminhtml di.xml events.xml system.xml adminhtml/di.xml new XML files, new XML tags you have to learn a new & more easy way of config.xml have a better overview validated against XML schemata
layout.xml Magento2 is seaching for this files named by view/layout/<frontname>_<controller>_<action>.xml (alternative you can use folders) also XML schema validation easy to overview separation of <html>, <head>, <body>, <update> you have to learn a new & more easy way of config.xml you reference container <reference name="header"> <referencecontainer name="header">
Alpha phase until 12/2014 Developer Beta 12/2014 # some developer look into Magento 2.0 # first heros try to port Magento 1.x extensions # some developer try to participate in Magento 2 # developers try to install Magento 2.0 # some hello world extensions # knowledge sharing Developer RC Q1/2015 # possibility to reinvent communnity driven extension development # Migrations Magento 1.x to 2.0 extensions Merchant Beta Q3/2015 # developers not integrated in community very well will try Magento 2.0 # first feedback of merchants of new problems and challenges # more migration of extensions
Magento 2.0 Q4/2015 # some heros will try first shop migrations First Shops Q2/2016 # more and more trust in Magento 2.0 # lessons learned sharing # migration of small stores will begin # more questions about Magento 2.0 from # first new stores with merchants Magento 2.0 # establish processes to work on Magento 1.x and 2.0 in parralel Return to normal Q4/2016 # more and more shops will migrate to or start with Magento 2.0 # returning to normal aily operations # often updates and upgrades New Magento stuff? # something new will come - surely :-)
How the Magento community can use the chance of non downwards compatible changes to increase extension quality?
Define a community based best practise, how to develop a Magento 2 extension beside the normal Magento docu, we as community should define best practises for the little things, e.g. where to store documentation and in which format and how what name for own defined keys in config how to store an extension on Github Unit tests - even when only call all methods one time (compatibility) Multiple solutions good, but use everytime a equal one Give new extension developers a way to work in a good way (because community do it) We need to discuss about how we want to develop good extensions!