SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
EXTBASE,
QUO VADIS?
Alexander Schnitzler
alexander.schnitzler@typo3.org
@alex_schnitzler
11/2019
alexanderschnitzler
AGENDA
11/2019 2
1. Extbase 9.5
2. Extbase 10.0
3. Extbase 10.1+
EXTBASE 9.5
11/2019 3
DOCTRINE
ANNOTATIONS
11/2019 4
11/2019
DOCTRINE ANNOTATIONS
5
11/2019
DOCTRINE ANNOTATIONS
What are they used for?
▪ They are used for the configuration of Validation,
Extbase DI (dependency injection) and the ORM
(object-relation mapping)
6
11/2019
DOCTRINE ANNOTATIONS
Benefits for TYPO3 and Extbase
▪ Annotations and possible annotation options are
represented by actual PHP classes
▪ Annotations can be registered for specific targets
https://www.doctrine-project.org/projects/doctrine-
annotations/en/latest/custom.html#annotation-
target
▪ Less source code to maintain and test
7
11/2019
DOCTRINE ANNOTATIONS
Benefits for Developers
▪ Annotations are actual classes, therefore they can
optionally be
▪ used with their fully qualified class name
or
▪ imported via use statement und used with their class name
or
▪ imported via use statement and aliased
▪ Some IDEs provide support for doctrine annotations:
https://www.doctrine-project.org/projects/doctrine-annotations/en/
latest/index.html#ide-support
8
11/2019
DOCTRINE ANNOTATIONS
9
11/2019
DOCTRINE ANNOTATIONS
10
11/2019
DOCTRINE ANNOTATIONS
How to replace @cascade
▪ https://docs.typo3.org/c/typo3/cms-core/
master/en-us/Changelog/9.0/Feature-83093-
ReplaceCascadeWithTYPO3CMSExtbaseAnno
tationORMCascade.html
11
11/2019
DOCTRINE ANNOTATIONS
How to replace @lazy
▪ https://docs.typo3.org/c/typo3/cms-core/
master/en-us/Changelog/9.0/Feature-83078-
ReplaceLazyWithTYPO3CMSExtbaseAnnotati
onORMLazy.html
12
11/2019
DOCTRINE ANNOTATIONS
How to replace @transient
▪ https://docs.typo3.org/c/typo3/cms-core/
master/en-us/Changelog/9.0/Feature-83092-
ReplaceTransientWithTYPO3CMSExtbaseAnn
otationORMTransient.html
13
11/2019
DOCTRINE ANNOTATIONS
How to replace @ignorevalidation
▪ https://docs.typo3.org/c/typo3/cms-core/
master/en-us/Changelog/9.0/Feature-83094-
ReplaceIgnorevalidationWithTYPO3CMSExtba
seAnnotationIgnoreValidation.html
14
11/2019
DOCTRINE ANNOTATIONS
How to replace @inject
▪ https://docs.typo3.org/c/typo3/cms-core/
master/en-us/Changelog/9.0/Feature-82869-
ReplaceInjectWithTYPO3CMSExtbaseAnnotati
onInject.html
15
11/2019
DOCTRINE ANNOTATIONS
How to replace @validate
▪ https://docs.typo3.org/c/typo3/cms-core/
master/en-us/Changelog/9.3/Feature-83167-
ReplaceValidateWithTYPO3CMSExtbaseAnnot
ationValidate.html
16
REFLECTION
11/2019 17
11/2019
REFLECTION
What does Extbase use Reflection for?
▪ Gather information about property and method
parameter types
▪ Detect custom annotations in doc blocks to
provide basic features like validation and
dependency injection
18
11/2019
REFLECTION
Reflection until Extbase 8.7
▪ Extbase implemented two different reflection API’s
▪ One API gathered DI related information
(extbase_object)
▪ Another gathered validation and ORM related information
(extbase_reflection)
▪ Both reflection API’s gathered and cached similar information
▪ The extbase_reflection cache stored reflection data for each plugin
separately
▪ Reflection information had often been fetched uncached
19
11/2019
REFLECTION
Reflection since Extbase 9.5
▪ There is only one Reflection API that gathers all the data
Extbase needs during runtime
▪ Reflection data is:
▪ gathered only once
▪ globally valid
▪ stored in the file system by default
▪ The Reflection cache can (technically) be warmed up before
runtime.
20
11/2019
REFLECTION
List of relevant patches
▪ https://review.typo3.org/c/Packages/TYPO3.CMS/
+/54381
▪ https://review.typo3.org/c/Packages/TYPO3.CMS/
+/54482
▪ https://review.typo3.org/c/Packages/TYPO3.CMS/
+/55261
21
EXTBASE 10.0
11/2019 22
REFLECTION
11/2019 23
11/2019
REFLECTION
Reflection API changes in Extbase 10.0
▪ To provide a more fluent Reflection API, classes have
been introduced for the Reflection data of:
▪ Class properties
▪ Class methods
▪ Class method parameters
▪ The size (byte wise) of serialized Reflection data has
been significantly reduced with the help of bit sets.
24
11/2019
REFLECTION
List of relevant patches
▪ https://review.typo3.org/c/Packages/TYPO3.CMS/
+/59382
▪ https://review.typo3.org/c/Packages/TYPO3.CMS/
+/59422
▪ https://review.typo3.org/c/Packages/TYPO3.CMS/
+/59626
25
PLUGIN
CONFIGURATION
11/2019 26
11/2019
PLUGIN CONFIGURATION
Fully Qualified Controller Class Names
▪ Fully qualified controller class names need to be
provided for configuring/registering plugins/modules
▪ Affected methods:
▪ TYPO3CMSExtbaseUtilityExtensionUtility
::configurePlugin
▪ TYPO3CMSExtbaseUtilityExtensionUtility
::registerModule
27
11/2019
PLUGIN CONFIGURATION
Fully Qualified Controller Class Names
▪ Documentation for this change
https://docs.typo3.org/c/typo3/cms-core/master/
en-us/Changelog/10.0/Deprecation-87550-
UseControllerClassesWhenRegisteringPluginsmo
dules.html
28
11/2019
PLUGIN CONFIGURATION
Obsolete vendor names
▪ Vendor names are no longer necessary for
configuring/registering plugins/modules
▪ Affected methods:
▪ TYPO3CMSExtbaseUtilityExtensionUtility
::configurePlugin
▪ TYPO3CMSExtbaseUtilityExtensionUtility
::registerModule
29
11/2019
PLUGIN CONFIGURATION
Obsolete vendor names
▪ Documentation for this change
https://docs.typo3.org/c/typo3/cms-core/master/
en-us/Changelog/10.0/Deprecation-87550-
UseControllerClassesWhenRegisteringPluginsmo
dules.html
30
11/2019
PLUGIN CONFIGURATION
31
11/2019
PLUGIN CONFIGURATION
32
11/2019
PLUGIN CONFIGURATION
Mapping of classes to database tables
▪ Support for config.tx_extbase.persistence.classes
(TypoScript) has been removed (breaking)
▪ Configuration has to be provided via
Configuration/Extbase/Persistence/Classes.php
33
11/2019
PLUGIN CONFIGURATION
34
11/2019
PLUGIN CONFIGURATION
Mapping of classes to database tables
▪ Documentation for this change
https://docs.typo3.org/c/typo3/cms-core/master/
en-us/Changelog/10.0/Breaking-87623-
ReplaceConfigpersistenceclassesTyposcriptConfi
guration.html
35
11/2019
PLUGIN CONFIGURATION
Registration of request handlers
▪ Support for
config.tx_extbase.mvc.requestHandlers
(TypoScript) has been removed (breaking)
▪ Configuration has to be provided via
Configuration/Extbase/RequestHandlers.php
36
11/2019
PLUGIN CONFIGURATION
37
11/2019
PLUGIN CONFIGURATION
Registration of request handlers
▪ Documentation for this change
https://docs.typo3.org/c/typo3/cms-core/master/
en-us/Changelog/10.0/Breaking-88687-
ConfigureExtbaseRequestHandlersViaPHP.html
38
VALIDATION
11/2019 39
11/2019
VALIDATION
Auto-Registration of Validators
▪ The following validators had been registered
automagically:
▪ Domain validators in Domain/Validator/
▪ Type Validators for model properties and action
method parameters
▪ Both are no longer registered automatically
40
11/2019
VALIDATION
Auto-Registration of Validators
▪ Issues with automagically registered validators:
▪ No indication which validators are used
▪ No possibility to deactivate validators
▪ Violates the concept of validation groups
41
11/2019
VALIDATION
Auto-Registration of Validators
▪ Benefits from removing auto-registration of
validators:
▪ Source code is more explicit and verbose
▪ You are in control
▪ Validation groups can be implemented
42
BREAKING
CHANGES
11/2019 43
11/2019
BREAKING CHANGES
Extension-Key-Guessing
▪ The AbstractController does no longer guess the
extension key by looking at the namespace of the
current controller class.
▪ AbstractController::$extensionName has been
removed
44
11/2019
BREAKING CHANGES
Extension-Key-Guessing
▪ The extension key is known when
dispatching the request
▪ Removes the bond of namespaces and
extension keys
45
11/2019
BREAKING CHANGES
Extension-Key-Guessing
▪ Documentation for this change
https://docs.typo3.org/c/typo3/cms-core/master/
en-us/Changelog/10.0/Breaking-87627-
RemovePropertyExtensionNameOfAbstractContr
oller.html
46
11/2019
BREAKING CHANGES
Removed View-Properties in ActionController
▪ The property ActionController::
$namespacesViewObjectNamePattern has been
removed.
▪ The property ActionController::
$viewFormatToObjectNameMap has been
removed.
47
11/2019
BREAKING CHANGES
Removed View-Properties in ActionController
▪ There were 3 possibilities to change the view class:
▪ $defaultViewObjectName
▪ $namespacesViewObjectNamePattern
▪ $viewFormatToObjectNameMap
▪ Just use $defaultViewObjectName
48
11/2019
BREAKING CHANGES
Removed View-Properties in ActionController
▪ Documentation for this change
▪ https://docs.typo3.org/c/typo3/cms-core/master/en-us/
Changelog/10.0/Breaking-87511-
RemoveNamespacesViewObjectNamePatternProperty.ht
ml
▪ https://docs.typo3.org/c/typo3/cms-core/master/en-us/
Changelog/10.0/Breaking-87511-
RemoveViewFormatToObjectNameMapProperty.html
49
FEATURES
11/2019 50
11/2019
FEATURES
symfony/property-info
▪ The package allows for a quite performant
detection of non FQCN’s in PHP doc blocks
▪ Examples:
▪ @var ObjectStorage<CollectionType>
▪ @var EntityRepository
@ExtbaseInject
51
EXTBASE 10.1+
11/2019 52
11/2019
EXTBASE 10.1+
symfony/validator
maybe
53
11/2019
EXTBASE 10.1+
ObjectManager
will be deprecated (and removed in 11.0)
54
11/2019
EXTBASE 10.1+
AbstractController
will be deprecated (and removed in 11.0)
55
11/2019
EXTBASE 10.1+
UriBuilder
will be a prototype, no more singleton (service)
56
11/2019
EXTBASE 10.1+
ConfigurationManager
will be stateless
57
11/2019
EXTBASE 10.1+
Request/Response
will be PSR-7 compatible
58
11/2019
EXTBASE 10.1+
switchableControllerActions
will be deprecated (and removed in 11.0 an upcoming version of TYPO3)
59
11/2019
EXTBASE 10.1+
fluid widgets
will be deprecated (and removed in 11.0)
60
THANK YOU!
You like my work? Become a sponsor on Github.
https://github.com/sponsors/alexanderschnitzler
11/2019 61

Weitere ähnliche Inhalte

Ähnlich wie Extbase, Quo Vadis? (11/2019)

Facebook Outage Analysis: Using External Visibility to Fortify Availability
Facebook Outage Analysis: Using External Visibility to Fortify AvailabilityFacebook Outage Analysis: Using External Visibility to Fortify Availability
Facebook Outage Analysis: Using External Visibility to Fortify Availability
ThousandEyes
 
Clean UAUH Proposal
Clean UAUH ProposalClean UAUH Proposal
Clean UAUH Proposal
Bruce Carr
 
Scalable Deployment Patterns in WSO2 API Manager
Scalable Deployment Patterns in WSO2 API Manager Scalable Deployment Patterns in WSO2 API Manager
Scalable Deployment Patterns in WSO2 API Manager
WSO2
 

Ähnlich wie Extbase, Quo Vadis? (11/2019) (20)

(ATS4-PLAT03) Balancing Security with access for Development
(ATS4-PLAT03) Balancing Security with access for Development(ATS4-PLAT03) Balancing Security with access for Development
(ATS4-PLAT03) Balancing Security with access for Development
 
MySQL Performance Tuning: The Perfect Scalability (OOW2019)
MySQL Performance Tuning: The Perfect Scalability (OOW2019)MySQL Performance Tuning: The Perfect Scalability (OOW2019)
MySQL Performance Tuning: The Perfect Scalability (OOW2019)
 
Azure Nights August2017
Azure Nights August2017Azure Nights August2017
Azure Nights August2017
 
Griffon Solutions Introduction To Share Point What Can I Do With It
Griffon Solutions   Introduction To Share Point   What Can I Do With ItGriffon Solutions   Introduction To Share Point   What Can I Do With It
Griffon Solutions Introduction To Share Point What Can I Do With It
 
Facebook Outage Analysis: Using External Visibility to Fortify Availability
Facebook Outage Analysis: Using External Visibility to Fortify AvailabilityFacebook Outage Analysis: Using External Visibility to Fortify Availability
Facebook Outage Analysis: Using External Visibility to Fortify Availability
 
APEX Interactive Grid API Essentials: The Stuff You Will Really Use
APEX Interactive Grid API Essentials:  The Stuff You Will Really UseAPEX Interactive Grid API Essentials:  The Stuff You Will Really Use
APEX Interactive Grid API Essentials: The Stuff You Will Really Use
 
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
 
Planning and deploying_share_point_farm_in_azure_gabsg_2016
Planning and deploying_share_point_farm_in_azure_gabsg_2016Planning and deploying_share_point_farm_in_azure_gabsg_2016
Planning and deploying_share_point_farm_in_azure_gabsg_2016
 
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBaseEmbeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
 
Clean UAUH Proposal
Clean UAUH ProposalClean UAUH Proposal
Clean UAUH Proposal
 
Avoiding Log Data Overload in a CI/CD System While Streaming 190 Billion Even...
Avoiding Log Data Overload in a CI/CD System While Streaming 190 Billion Even...Avoiding Log Data Overload in a CI/CD System While Streaming 190 Billion Even...
Avoiding Log Data Overload in a CI/CD System While Streaming 190 Billion Even...
 
NI Package Manager
NI Package ManagerNI Package Manager
NI Package Manager
 
Scalable Deployment Patterns in WSO2 API Manager
Scalable Deployment Patterns in WSO2 API Manager Scalable Deployment Patterns in WSO2 API Manager
Scalable Deployment Patterns in WSO2 API Manager
 
Collecting AWS Logs & Introducing Splunk New S3 Compatible Storage (SmartStore)
Collecting AWS Logs & Introducing Splunk New S3 Compatible Storage (SmartStore) Collecting AWS Logs & Introducing Splunk New S3 Compatible Storage (SmartStore)
Collecting AWS Logs & Introducing Splunk New S3 Compatible Storage (SmartStore)
 
Artifactory Essentials Workshop on August 27, 2020 by JFrog
Artifactory Essentials Workshop on August 27, 2020 by JFrogArtifactory Essentials Workshop on August 27, 2020 by JFrog
Artifactory Essentials Workshop on August 27, 2020 by JFrog
 
Queries in SAP: Introduction
Queries in SAP: IntroductionQueries in SAP: Introduction
Queries in SAP: Introduction
 
ELK - Optimizations & Updates
ELK - Optimizations & UpdatesELK - Optimizations & Updates
ELK - Optimizations & Updates
 
Cowboy dating with big data TechDays at Lohika-2020
Cowboy dating with big data TechDays at Lohika-2020Cowboy dating with big data TechDays at Lohika-2020
Cowboy dating with big data TechDays at Lohika-2020
 
Cowboy dating with big data
Cowboy dating with big data Cowboy dating with big data
Cowboy dating with big data
 
cloud-training-exa-cs-backup-recovery.pdf
cloud-training-exa-cs-backup-recovery.pdfcloud-training-exa-cs-backup-recovery.pdf
cloud-training-exa-cs-backup-recovery.pdf
 

Kürzlich hochgeladen

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Kürzlich hochgeladen (20)

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 

Extbase, Quo Vadis? (11/2019)