Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Harnessing the power of React in SilverStripe 4
Search
Robbie Averill
September 21, 2018
Programming
320
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Harnessing the power of React in SilverStripe 4
Presentation given at StripeCon EU 2018 - Enschede, Netherlands
Robbie Averill
September 21, 2018
Other Decks in Programming
See All in Programming
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
2
690
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.3k
AIで効率化できた業務・日常
ochtum
0
120
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
2k
AI時代のUIはどこへ行く?その2!
yusukebe
21
7k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
160
CSC307 Lecture 17
javiergs
PRO
0
320
Lessons from Spec-Driven Development
simas
PRO
0
170
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
120
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
20
6.5k
Featured
See All Featured
Writing Fast Ruby
sferik
630
63k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
How to make the Groovebox
asonas
2
2.2k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
New Earth Scene 8
popppiees
3
2.3k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
390
Paper Plane
katiecoart
PRO
1
51k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
160
Deep Space Network (abreviated)
tonyrice
0
170
Transcript
React in SilverStripe 4 Harnessing its power 21st Sept 2018
• Robbie Averill
• Assets • Campaigns • History viewer • Archives •
Small components e.g. TreeDropdownField Where it's used already
• SilverStripe form schema • React 15 and Redux •
GraphQL and Apollo • Reactstrap • SilverStripe's JavaScript Injector What you get
• More of the CMS will be React driven •
Slowly phasing out Entwine • A new paradigm for frontend SilverStripe CMS development Where it's heading
• PHP, SilverStripe and entwine boilerplate • React components •
GraphQL queries • Injector transformations Example: new history viewer component
Injecting the component A PHP FormField with a SilverStripe template
Injecting the component
Injecting the component
Don't forget to unmount! • Prevent React components from continually
mounting into the document by unmounting it
From here on out, it's all React!
A "hello world" component example
Register with Injector
None
Cool man… give me a list!
None
Obviously I wanted some data in the list
Scaffolding a GraphQL query
Test it with GraphiQL
Make query a Higher Order Component • Use the "graphql"
HOC (Higher-Order-Component) from the react-apollo package • cms/client/src/state/history/readOnePageQuery.js
Inject the query into HistoryViewer
Here's your list!
Use the React and Redux dev tools • React dev
tools let you inspect component structures and props • Redux dev tools let you inspect the current state and how reducers change it over time
None
• Base module provides abstract components • It's up to
implementations to define the data queries • Use injector to hook it up • Implemented in the CMS and Elemental modules History Viewer: summary
Roadmap: progress since 4.0
• Content blocks • Improved versioning features • React and
GraphQL extensibility • Unified CMS search interface • Large UX focus Roadmap: progress since 4.0
Content blocks
React history viewer
Archive area
React and GraphQL extensibility
Unified CMS search interface
• SilverStripe 3 supported until Dec 2020 • SilverStripe 4
nears its first anniversary (Nov 2018) • New features built as opt-in SilverStripe 4 modules • More clarity on release expectations Release Management
None
• Mainstream use of APIs to decouple CMS • Focus
on managing digital experiences • Deeper integrations with other SaaS tools Analytics, targeting, campaigns, marketing automation, search, etc • Modernise CMS UI through React+GraphQL • New features into minor 4.x releases Coming up in 2019...
Q 4 ’ 1 8 Q 1 ’ 1 9
Q 2 ’ 1 9 Q 3 ’ 1 9 Near Future ✓ ISOLATED BUILDS SilverStripe Technology Roadmap API FOUNDATIONS INTEGRATION OF DIGITAL EXPERIENCE SYSTEMS DECOUPLED CONTENT MANAGEMENT SYNDICATED CONTENT PLATFORM AUTOMATION & SCALABILITY ✓ POPULARISE DECOUPLED USE CASE ✶ SILVERSTRIPE CONTENT API ✶ AUTHENTICATED APIS ✶ IDENTITY MANAGEMENT ✶ API INFRASTRUCTURE ✶ CONTENT SHARING ✓ UPGRADE PLATFORMS TO PHP 7 ✶ SURFACE EXISTING USAGE ✶ ANALYTICS MODERNISE CMS UI TECHNOLOGIES SILVERSTRIPE 6 ✓ CONVERT SECONDARY UIs TO REACT ✶ BLOCKS ECOSYSTEM ✓ REACT GRIDFIELD ✓ BLOCKS EDITOR ✓ PATTERN LIBRARY ✶ CONVERT PRIMARY UIs TO REACT ✓ STABILISE GRAPHQL ✶ MULTI CHANNEL Logging and metrics on SSP and CWP ✶ CWP CANDIDATES ON AWS ✶ EXPERIMENTATION AND TARGETING ✶ PERSONALISATION ✶ MARKETING AUTOMATION ✶ LOGGING EVALUATION SILVERSTRIPE 5 ✶ PERFORMANCE ✶ MAXIMISE REUSE ✶ METRICS EVALUATION ✶ AUTOMATED SSL CERT. ON SSP (LET'S ENCRYPT)
• 20-25 contributors/month • 500 commits/month • 63,936 total commits
• Over 11 years (on GitHub) • 583 total contributors • 828,462 lines of code • 879 open, 4,511 closed issues • 69 open, 9,465 closed PRs Contributions * Graph: OpenHub. Stats: GitHub.
• SilverStripe forums • GitHub issues • SilverStripe contributing guide
• SilverStripe DSM • Get involved! How to contribute
Thank you! Twitter: @robbieaverill Email:
[email protected]
21st Sept 2018 •
Robbie Averill