90
OXID ESHOP OVERVIEW OF CHANGES IN V6

OXID eShop V6 changes overview

Embed Size (px)

Citation preview

Page 1: OXID eShop V6 changes overview

OXIDESHOPOVERVIEWOFCHANGESINV6

Page 2: OXID eShop V6 changes overview

WHO?EdvinasAleksejonokas

Softwaredeveloper/architect|OXIDeSalesAG

Page 3: OXID eShop V6 changes overview

SYSTEMREQUIREMENTS

Page 4: OXID eShop V6 changes overview

SYSTEMREQUIREMENTS|WHAT?PHP

Supportedversions:5.67.0

Noencoders/loadersrequired:ZendGuardIonCube

Composer

Page 5: OXID eShop V6 changes overview

SYSTEMREQUIREMENTS|WHAT?MYSQL

Supportedversions:5.55.6(# )5.7

79203

Page 6: OXID eShop V6 changes overview

COMPOSER

Page 7: OXID eShop V6 changes overview

COMPOSER|WHAT?

Page 8: OXID eShop V6 changes overview

COMPOSER|WHAT?NEWREQUIREMENTphpcomposer-setup.phpcomposerinstall

Page 9: OXID eShop V6 changes overview

COMPOSER|WHY?BENEFITS#1/5

InstallnecessaryeShopedition(CE/PE/EE)InstallnecessaryOXIDcomponents

ThemesModulesDemodata

Page 10: OXID eShop V6 changes overview

COMPOSER|WHY?BENEFITS#2/5

Installnecessary3rdpartycomponentsdoctrine/dbalphpmailersmarty...

Page 11: OXID eShop V6 changes overview

COMPOSER|WHY?BENEFITS#3/5

ProvidePSR-4compatibleautoloaderSupportallnecessary3rdpartycomponentsSupportneweShopcorenamespaces:\OxidEsales\EshopCommunity\OxidEsales\EshopProfessional\OxidEsales\EshopEnterprise

Page 12: OXID eShop V6 changes overview

COMPOSER|WHY?BENEFITS#4/5

ProvidecomfortableeShopmaintenance:InstallfullyfunctionaleShop(batteriesincluded)Updateallcomponentson-demand

Page 13: OXID eShop V6 changes overview

COMPOSER|WHY?BENEFITS#5/5

Forprojectdevelopers:Managecustom/other3rdpartycomponentsDefineadditionalnamespacesAddcomposerscripts

Page 14: OXID eShop V6 changes overview

COMPOSER|HOW?INSTALLESHOP

composercreate-projectoxid-esales/oxideshop-project\<my_project_name>dev-b-6.0-ce

Page 15: OXID eShop V6 changes overview

COMPOSER|HOW?ADD3RDPARTYCOMPONENT

composerrequiremonolog/monolog

Page 16: OXID eShop V6 changes overview

COMPOSER|HOW?ADDOXIDESALESMODULE/THEME

composerrequireoxid-esales/paypal-modulecomposerrequireoxid-esales/flow-theme

Page 17: OXID eShop V6 changes overview

COMPOSER|HOW?ADD3RDPARTYMODULE/THEME

composerrequirevendor_name/module_name-modulecomposerrequirevendor_name/theme_name-theme

Page 18: OXID eShop V6 changes overview

COMPOSER|HOW?UPDATEALLPROJECTCOMPONENTS

composerupdate

Page 19: OXID eShop V6 changes overview

COMPOSER|HOW?UPDATEESHOPCOREONLY

composerupdateoxid-esales/oxideshop-ce

Page 20: OXID eShop V6 changes overview

COMPOSER|HOW?UPDATEALLESHOPCOMPONENTS

composerupdateoxid-esales/oxideshop-metapackage-ce

Page 21: OXID eShop V6 changes overview

COMPOSER|HOW?DEFINECUSTOMNAMESPACES

"autoload":{"psr-4":{"MyVendor\\MyPackage\\":"./<path_to_src>/"}},

Page 22: OXID eShop V6 changes overview

COMPOSER|HOW?DEFINEYOUROWNSCRIPTS

"scripts":{"oe:views:regenerate":"oe-eshop-factsoe-eshop-db_views_regenerate",..."custom":"<path_to_custom_script>"},

Page 23: OXID eShop V6 changes overview

COMPOSER|WHERE?SINGLEFILE

<project_root>/composer.json

Page 24: OXID eShop V6 changes overview

COMPOSER|WHERE?V5.3DEPRECATED

<project_root>/source/modules/composer.json

Page 25: OXID eShop V6 changes overview

COMPILATION

Page 26: OXID eShop V6 changes overview

COMPILATION|WHAT?EVERYTHINGINCLUDEDINONEPLACE

OXIDeShopCoreOXID/3rdparty:ModulesThemesComponents

Page 27: OXID eShop V6 changes overview

COMPILATION|HOW?METAPACKAGES

Acompilationisdefinedbymeta-package:

oxideshop-metapackage-ceoxideshop-metapackage-peoxideshop-metapackage-ee

Page 28: OXID eShop V6 changes overview

COMPILATION|HOW?USAGE

New:composercreate-project...oxid-esales/oxideshop-project

Existing<project_root>/source/modules/composer.jsoncomposerrequire...oxid-esales/oxideshop-metapackage-ce

Page 29: OXID eShop V6 changes overview

COMPILATION|WHERE?DISTRIBUTION#1(COMPOSER)

Packagist( )Publicserviceforpublicpackagesoxid-esales/oxideshop-ceoxid-esales/paypal-moduleoxid-esales/flow-theme...

www.packagist.org

Page 30: OXID eShop V6 changes overview

COMPILATION|WHERE?DISTRIBUTION#2(COMPOSER)Satis( )

Internalserviceforproprietarypackagesoxid-esales/oxideshop-eevisualcms-module...

packages.oxid-esales.com

Page 31: OXID eShop V6 changes overview

COMPILATION|WHY?EASYTO...

composerinstall/create-projectFullyfunctionaleShop

composerupdateMigratetonewmajorversionofeShopGetthelatestpatchesforcoreandallcomponents

Page 32: OXID eShop V6 changes overview

NAMESPACES

Page 33: OXID eShop V6 changes overview

NAMESPACES|WHAT?NEWPSR-4DEFINEDFORINTERNALCLASSES

\OxidEsales\Eshop-VirtualNamespace\OxidEsales\EshopCommunity-CE\OxidEsales\EshopProfessional-PE\OxidEsales\EshopEnterprise-EE

Page 34: OXID eShop V6 changes overview

NAMESPACES|HOW?COMPOSERAUTOLOADER

"autoload":{"psr-4":{"OxidEsales\\EshopCommunity\\":".../oxideshop-ce","OxidEsales\\EshopProfessional\\":".../oxideshop-pe","OxidEsales\\EshopEnterprise\\":".../oxideshop-ee",}}

Page 35: OXID eShop V6 changes overview

NAMESPACES|HOW?BACKWARDSCOMPATIBLEBYCLASSMAP#1

isanaliasto

oxNew('oxArticle');

oxNew(\OxidEsales\Eshop\Application\Model\Article::class);

Page 36: OXID eShop V6 changes overview

NAMESPACES|HOW?CLASSMAPS

InsideClassMapfile:'oxbase'=>...\Core\Model\BaseModel::class,'oxarticle'=>...\Application\Model\Article::class,'oxorder'=>...\Application\Model\Order::class,'details'=>...\Application\Controller\ArticleDetailsController::class,

Page 37: OXID eShop V6 changes overview

NAMESPACES|HOW?CLEARNAMINGOFSUPPERCLASSES

oxSuperCfg->BaseoxView->BaseControlleroxUBase->FrontendControlleroxWidget->WidgetControlleroxAdminView->AdminControlleroxAdminDetail->AdminDetailsControlleroxAdminList->AdminListControlleroxBase->BaseModeloxList->ListModeloxI18n->MultiLanguageModel

Page 38: OXID eShop V6 changes overview

NAMESPACES|HOW?BACKWARDSCOMPATIBLEBYCLASSMAP#2

Insideofmetadata.php

issameas

'oxorder'=>'<vendor>/<module_name>/models/order'

\OxidEsales\Eshop\Application\Model\Order::class=>'<vendor>/<module_name>/models/order'

Page 39: OXID eShop V6 changes overview

EVENBETTER...

Page 40: OXID eShop V6 changes overview

NAMESPACES|HOW?BACKWARDSCOMPATIBLEBYCLASSMAP#2

Insideofmetadata.php

issameas

'oxorder'=>'<vendor>/<module_name>/models/order'

\OxidEsales\Eshop\Application\Model\Order::class=>\MyVendor\MyModule\MyOrderClass::class

Page 41: OXID eShop V6 changes overview

NAMESPACES|HOW?USAGEINMODULES

Createcomposer.jsonfileintherootofmoduleDefinenamespaceinuse:

Usecomposerrequiretoaddyourmodule

"autoload":{"psr-4":{"MyVendor\\MyModule":"../../../source/modules/myvendor/mymodule"}}

Page 42: OXID eShop V6 changes overview

NAMESPACES|WHY?GENERAL

De-factostandardtomanagehierarchyofclassesHelpedtoseparateeShopeditionsinacleanwayNoneedtomaintaincustomauto-loaderGainperformance

NoneedtoscanfilesoneveryoxNewcall

Page 43: OXID eShop V6 changes overview

NAMESPACES|WHY?VIRTUALNAMESPACE

\OxidEsales\Eshop

IntroducedforconvenienceMapscurrentactiveeShopeditionnamespace

Page 44: OXID eShop V6 changes overview

DATABASE

Page 45: OXID eShop V6 changes overview

DATABASE|TOPICSDBALInnoDBMigrationMySQL5.7UTF-8

Page 46: OXID eShop V6 changes overview

DBAL

Page 47: OXID eShop V6 changes overview

DATABASE|DBAL|WHAT?NEWDATABASEABSTRACTIONLAYER

ADOdblitedoctrine/dbalv2.5.4ORMexcluded!

Page 48: OXID eShop V6 changes overview

DATABASE|DBAL|HOW?UPDATEDCLASSES

OxidEsales\EshopCommunity\Core:DatabaseProvider(oxDb)Database\Adapter\DatabaseInterfaceDatabase\Adapter\Doctrine\Database

Page 49: OXID eShop V6 changes overview

DATABASE|DBAL|HOW?USAGE

DatabaseProvider::getDb()returnsDatabaseInterface:getOne,getRow,getCol,getAllselect,selectLimitexecutequote,quoteArraystartTransactioncommitTransactionrollbackTransaction

Page 50: OXID eShop V6 changes overview

DATABASE|DBAL|HOW?SELECTVSEXECUTE

Page 51: OXID eShop V6 changes overview

DATABASE|DBAL|WHY?ADOdbliteDoctrineDBAL

PopularandactivelymaintainedAllowstoswitchtodifferentdatabaseengine

Weliketohaveoptions!

Page 52: OXID eShop V6 changes overview

INNODB

Page 53: OXID eShop V6 changes overview

DATABASE|INNODB|WHAT?SWITCHTOINNODB

AlltableshavebeenconvertedtoInnoDB

Page 54: OXID eShop V6 changes overview

DATABASE|INNODB|HOW?NOFULL-TEXTSEARCHLEFT

MigrationtoInnoDBRemovedallplacesincodewhichrequiredfull-textsearch

e.g.tagswasextractedinseparatemoduleUpdatedqueriestouseexplicitsorting

Page 55: OXID eShop V6 changes overview

DATABASE|INNODB|WHY?NEWPOSSIBILITIES

UsetransactionsforalltablesRow-levellockingMaster-masterreplicationmodel

Linearwritescalee.g.Galeracluster

Page 56: OXID eShop V6 changes overview

MIGRATIONS

Page 57: OXID eShop V6 changes overview

DATABASE|MIGRATIONS|WHAT?Migration-SpecialSQLfiletoautomaticallyupdate

database

doctrine/migrations

Page 58: OXID eShop V6 changes overview

DATABASE|MIGRATIONS|HOW?EXECUTION

composeroe:migration:run

Page 59: OXID eShop V6 changes overview

DATABASE|MIGRATIONS|HOW?CREATION

MIGRATION_SUITE=<SUITE_NAME>\composeroe:migration:newCEPEEEPROJECT

Page 60: OXID eShop V6 changes overview

DATABASE|MIGRATIONS|WHY?EASEOFUSE

AutomatemanualworkAbilitytomigratefromCE/PEandPE/EEUpgradeeShopAllowprojectdeveloperstoeasilyapplydatabasechanges

Page 61: OXID eShop V6 changes overview

MYSQL5.7

Page 62: OXID eShop V6 changes overview

DATABASE|MYSQL5.7|WHAT?ESHOPV6ISMYSQL5.7FRIENDLY

Page 63: OXID eShop V6 changes overview

DATABASE|MYSQL5.7|HOW?CHANGEQUERIES

OuracceptancetestsuiteshowedproblematicplacesQuerieswereupdatedtorestoreoriginalbehavior

Page 64: OXID eShop V6 changes overview

DATABASE|MYSQL5.7|WHY?KEEPUPWITHHOSTINGPROVIDERSInterestfromourclientsBecompatiblewithhostingprovidersBenefitfromoptimization&performancegains

Page 65: OXID eShop V6 changes overview

UTF-8

Page 66: OXID eShop V6 changes overview

DATABASE|UTF-8|WHAT?UTF-8ONLY

Page 67: OXID eShop V6 changes overview

DATABASE|UTF-8|WHY?MULTI-LANGUAGESUPPORT

SupportmultiplelanguagesinonedatabaseBackwardscompatiblewithASCIINonoticeableperformancepenalty

Page 68: OXID eShop V6 changes overview

DATABASEFEWMORENOTES

Master/slavehandlingwaschangedPossibletousenestedtransactionsoxDb->3methodwereremoved

Page 69: OXID eShop V6 changes overview

EXTRACTEDMODULES

Page 70: OXID eShop V6 changes overview

EXTRACTEDMODULES|WHAT?LISTOFREPOSITORIES

https://github.com/OXID-eSales:lexware_export_moduleextended_order_administration_modulestatistics_modulecaptcha_moduleguestbook_modulefacebook_modulepdf_invoice_moduletags_module

Page 71: OXID eShop V6 changes overview

EXTRACTEDMODULES|WHAT?LISTOF3RDPARTYMODULES

Trustedshops

Page 72: OXID eShop V6 changes overview

EXTRACTEDMODULES|WHY?STREAMLINEESHOPCORE

Removeharddependenciesonnon-essentialsitemsUpdateextractedmoduleson-demand

NoneedtowaitforeShopupdate

Page 73: OXID eShop V6 changes overview

BACKWARDSCOMPATIBILITY

Page 74: OXID eShop V6 changes overview

BC|WHAT?BesidesextractedcodeintomodulesTherearenomoreBCbreaksforexistingmodules!

Page 75: OXID eShop V6 changes overview

BC|WHY?BECAUSEWEDOCARE!

Page 76: OXID eShop V6 changes overview

NOTES

Page 77: OXID eShop V6 changes overview

VMOurVMhasbeenupdatedtoworkwithV6out-of-the-box

PHPupgradedto5.6For5.3version-fewnotesinreadme

Page 78: OXID eShop V6 changes overview

DOCUMENTATION

Shortlink:

http://oxid-eshop-developer-documentation.readthedocs.io/en/latest/

http://tinyurl.com/oxid-dev-doc

Page 79: OXID eShop V6 changes overview

SUMMARY

Page 80: OXID eShop V6 changes overview

SUMMARYNewrequirementsComposerintegrationCompilationNamespaces

Classnames,classmap,usageinmodulesDatabasechanges

Doctrine,InnoDB,Migrations,MySQL5.7ExtractedModulesBackwardscompatibilityVM&Documentation

Page 81: OXID eShop V6 changes overview

DETAILEDTALKS

Page 82: OXID eShop V6 changes overview

DETAILEDTALKSComposerroleinOXIDeShop6.0MantasVaitkūnas(EN)

UpdatetoeShop6.0-WhatdoIhavetowatchoutfor?GregorHyneck(DE/EN)

ThenewdatabasehandlinginOXIDeShopv6.0RobertBlank(DE/EN)

Page 83: OXID eShop V6 changes overview

ONEMORETHING...

Page 84: OXID eShop V6 changes overview
Page 85: OXID eShop V6 changes overview

DOCKER|WHAT?PROTOTYPE

Eachcomponenthasit'sowncontainerMajoritybeingfromoriginalvendors

Eachtoolcanbeusedasanad-hoccommandOXIDeShopasdatavolume

Downloadexisting/configuredeShop

Page 86: OXID eShop V6 changes overview

DOCKER|WHY?MANYREASONS...

SmallfootprintBlazingfast!Developerfriendly

DockerforMacDockerforWindows

AbilitytouseCloudservicesMobilityHelpstoautomatethings...

Page 87: OXID eShop V6 changes overview

DOCKER|WHEN?WHERE?DecemberBlogpostNewgithubrepositories

Page 88: OXID eShop V6 changes overview

DOCKER|DEMO

Page 89: OXID eShop V6 changes overview

QUESTIONS?

Page 90: OXID eShop V6 changes overview

THANKYOU!