oxid eshop v6 changes overview

Post on 15-Apr-2017

140 Views

Category:

Software

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

OXIDESHOPOVERVIEWOFCHANGESINV6

WHO?EdvinasAleksejonokas

Softwaredeveloper/architect|OXIDeSalesAG

SYSTEMREQUIREMENTS

SYSTEMREQUIREMENTS|WHAT?PHP

Supportedversions:5.67.0

Noencoders/loadersrequired:ZendGuardIonCube

Composer

SYSTEMREQUIREMENTS|WHAT?MYSQL

Supportedversions:5.55.6(# )5.7

79203

COMPOSER

COMPOSER|WHAT?

COMPOSER|WHAT?NEWREQUIREMENTphpcomposer-setup.phpcomposerinstall

COMPOSER|WHY?BENEFITS#1/5

InstallnecessaryeShopedition(CE/PE/EE)InstallnecessaryOXIDcomponents

ThemesModulesDemodata

COMPOSER|WHY?BENEFITS#2/5

Installnecessary3rdpartycomponentsdoctrine/dbalphpmailersmarty...

COMPOSER|WHY?BENEFITS#3/5

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

COMPOSER|WHY?BENEFITS#4/5

ProvidecomfortableeShopmaintenance:InstallfullyfunctionaleShop(batteriesincluded)Updateallcomponentson-demand

COMPOSER|WHY?BENEFITS#5/5

Forprojectdevelopers:Managecustom/other3rdpartycomponentsDefineadditionalnamespacesAddcomposerscripts

COMPOSER|HOW?INSTALLESHOP

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

COMPOSER|HOW?ADD3RDPARTYCOMPONENT

composerrequiremonolog/monolog

COMPOSER|HOW?ADDOXIDESALESMODULE/THEME

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

COMPOSER|HOW?ADD3RDPARTYMODULE/THEME

composerrequirevendor_name/module_name-modulecomposerrequirevendor_name/theme_name-theme

COMPOSER|HOW?UPDATEALLPROJECTCOMPONENTS

composerupdate

COMPOSER|HOW?UPDATEESHOPCOREONLY

composerupdateoxid-esales/oxideshop-ce

COMPOSER|HOW?UPDATEALLESHOPCOMPONENTS

composerupdateoxid-esales/oxideshop-metapackage-ce

COMPOSER|HOW?DEFINECUSTOMNAMESPACES

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

COMPOSER|HOW?DEFINEYOUROWNSCRIPTS

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

COMPOSER|WHERE?SINGLEFILE

<project_root>/composer.json

COMPOSER|WHERE?V5.3DEPRECATED

<project_root>/source/modules/composer.json

COMPILATION

COMPILATION|WHAT?EVERYTHINGINCLUDEDINONEPLACE

OXIDeShopCoreOXID/3rdparty:ModulesThemesComponents

COMPILATION|HOW?METAPACKAGES

Acompilationisdefinedbymeta-package:

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

COMPILATION|HOW?USAGE

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

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

COMPILATION|WHERE?DISTRIBUTION#1(COMPOSER)

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

www.packagist.org

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

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

packages.oxid-esales.com

COMPILATION|WHY?EASYTO...

composerinstall/create-projectFullyfunctionaleShop

composerupdateMigratetonewmajorversionofeShopGetthelatestpatchesforcoreandallcomponents

NAMESPACES

NAMESPACES|WHAT?NEWPSR-4DEFINEDFORINTERNALCLASSES

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

NAMESPACES|HOW?COMPOSERAUTOLOADER

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

NAMESPACES|HOW?BACKWARDSCOMPATIBLEBYCLASSMAP#1

isanaliasto

oxNew('oxArticle');

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

NAMESPACES|HOW?CLASSMAPS

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

NAMESPACES|HOW?CLEARNAMINGOFSUPPERCLASSES

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

NAMESPACES|HOW?BACKWARDSCOMPATIBLEBYCLASSMAP#2

Insideofmetadata.php

issameas

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

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

EVENBETTER...

NAMESPACES|HOW?BACKWARDSCOMPATIBLEBYCLASSMAP#2

Insideofmetadata.php

issameas

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

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

NAMESPACES|HOW?USAGEINMODULES

Createcomposer.jsonfileintherootofmoduleDefinenamespaceinuse:

Usecomposerrequiretoaddyourmodule

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

NAMESPACES|WHY?GENERAL

De-factostandardtomanagehierarchyofclassesHelpedtoseparateeShopeditionsinacleanwayNoneedtomaintaincustomauto-loaderGainperformance

NoneedtoscanfilesoneveryoxNewcall

NAMESPACES|WHY?VIRTUALNAMESPACE

\OxidEsales\Eshop

IntroducedforconvenienceMapscurrentactiveeShopeditionnamespace

DATABASE

DATABASE|TOPICSDBALInnoDBMigrationMySQL5.7UTF-8

DBAL

DATABASE|DBAL|WHAT?NEWDATABASEABSTRACTIONLAYER

ADOdblitedoctrine/dbalv2.5.4ORMexcluded!

DATABASE|DBAL|HOW?UPDATEDCLASSES

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

DATABASE|DBAL|HOW?USAGE

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

DATABASE|DBAL|HOW?SELECTVSEXECUTE

DATABASE|DBAL|WHY?ADOdbliteDoctrineDBAL

PopularandactivelymaintainedAllowstoswitchtodifferentdatabaseengine

Weliketohaveoptions!

INNODB

DATABASE|INNODB|WHAT?SWITCHTOINNODB

AlltableshavebeenconvertedtoInnoDB

DATABASE|INNODB|HOW?NOFULL-TEXTSEARCHLEFT

MigrationtoInnoDBRemovedallplacesincodewhichrequiredfull-textsearch

e.g.tagswasextractedinseparatemoduleUpdatedqueriestouseexplicitsorting

DATABASE|INNODB|WHY?NEWPOSSIBILITIES

UsetransactionsforalltablesRow-levellockingMaster-masterreplicationmodel

Linearwritescalee.g.Galeracluster

MIGRATIONS

DATABASE|MIGRATIONS|WHAT?Migration-SpecialSQLfiletoautomaticallyupdate

database

doctrine/migrations

DATABASE|MIGRATIONS|HOW?EXECUTION

composeroe:migration:run

DATABASE|MIGRATIONS|HOW?CREATION

MIGRATION_SUITE=<SUITE_NAME>\composeroe:migration:newCEPEEEPROJECT

DATABASE|MIGRATIONS|WHY?EASEOFUSE

AutomatemanualworkAbilitytomigratefromCE/PEandPE/EEUpgradeeShopAllowprojectdeveloperstoeasilyapplydatabasechanges

MYSQL5.7

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

DATABASE|MYSQL5.7|HOW?CHANGEQUERIES

OuracceptancetestsuiteshowedproblematicplacesQuerieswereupdatedtorestoreoriginalbehavior

DATABASE|MYSQL5.7|WHY?KEEPUPWITHHOSTINGPROVIDERSInterestfromourclientsBecompatiblewithhostingprovidersBenefitfromoptimization&performancegains

UTF-8

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

DATABASE|UTF-8|WHY?MULTI-LANGUAGESUPPORT

SupportmultiplelanguagesinonedatabaseBackwardscompatiblewithASCIINonoticeableperformancepenalty

DATABASEFEWMORENOTES

Master/slavehandlingwaschangedPossibletousenestedtransactionsoxDb->3methodwereremoved

EXTRACTEDMODULES

EXTRACTEDMODULES|WHAT?LISTOFREPOSITORIES

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

EXTRACTEDMODULES|WHAT?LISTOF3RDPARTYMODULES

Trustedshops

EXTRACTEDMODULES|WHY?STREAMLINEESHOPCORE

Removeharddependenciesonnon-essentialsitemsUpdateextractedmoduleson-demand

NoneedtowaitforeShopupdate

BACKWARDSCOMPATIBILITY

BC|WHAT?BesidesextractedcodeintomodulesTherearenomoreBCbreaksforexistingmodules!

BC|WHY?BECAUSEWEDOCARE!

NOTES

VMOurVMhasbeenupdatedtoworkwithV6out-of-the-box

PHPupgradedto5.6For5.3version-fewnotesinreadme

DOCUMENTATION

Shortlink:

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

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

SUMMARY

SUMMARYNewrequirementsComposerintegrationCompilationNamespaces

Classnames,classmap,usageinmodulesDatabasechanges

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

DETAILEDTALKS

DETAILEDTALKSComposerroleinOXIDeShop6.0MantasVaitkūnas(EN)

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

ThenewdatabasehandlinginOXIDeShopv6.0RobertBlank(DE/EN)

ONEMORETHING...

DOCKER|WHAT?PROTOTYPE

Eachcomponenthasit'sowncontainerMajoritybeingfromoriginalvendors

Eachtoolcanbeusedasanad-hoccommandOXIDeShopasdatavolume

Downloadexisting/configuredeShop

DOCKER|WHY?MANYREASONS...

SmallfootprintBlazingfast!Developerfriendly

DockerforMacDockerforWindows

AbilitytouseCloudservicesMobilityHelpstoautomatethings...

DOCKER|WHEN?WHERE?DecemberBlogpostNewgithubrepositories

DOCKER|DEMO

QUESTIONS?

THANKYOU!

top related