TYPO3 Developer Days 2024: Day 1 - 1st August 2024
By Mike Street
TYPO3 Developer Days is taking place in Germany over the next few days. As I attend each talk, I've been writing bullet points in my notebook of noteworthy things, things I agree with, things to remember or things to look up later.
The following post is those bullet points in a digital format. They probably won't make sense to anyone, but serve as a nudge for future me and stop them from living and dying in my notebook. They are also my twist and interpretation of what was said - some of it is verbatim, but other notes are what I took from it.
See other days:
Keynote - Benni Mack
T3DD Schedule Link / Slides (tbc) / Video (tbc)
- Generative AI in a CMS
- Content generation
- Coding
- Translating
- Headless separates content from design
- Structured and semantic content is key
- Get your content straight and then let AI do the heavy lifting of editing, optimising & translating
- TYPO3 Content blocks
- Currently an extension but will be in the core in v13
- TYPO3 SurfCamp built a website with site sets
- https://github.com/typo3incubator
- TYPO3 have a11y tests in the pipeline - look into this
- TYPO3 are extending the LTS by 2 months (from v13)
Migrating from jQuery - Core Journey to Vanilla JS - Andreas Nedbal
T3DD Schedule Link / Slides / Video (tbc)
$
replace withdocumentQuerySelector(All)
attr
withgetAttribute
/setAttribute
.data('*')
- use regex to replace with.datatset.$1
- Native DOM API has no chaining of methods
closest
exists in native JS toonew RegularEvent('change', function() {}).delegateTo
(ref)- TYPO3 Backend JS has it's own
AjaxResponse
class to use instead of$.ajax
- Lit/LitElements is a wrapper library for web components which is helpful for building dynamic HTML
- Firefox restricts JS to the frame (Webkit ignores this)
Settings and Configuration Management - Benjamin Franzke
T3DD Schedule Link / Slides / Video (tbc)
- All settings should have a default
- Site Sets -
Configuration/Sets/[SET NAME]
- Settings, TypoScript * TSConfig
- Shareable
Configuration/Sets/*/config.yaml
- Should have a
name
andlabel
- Should have a
- In TYPO3 -> Edit Site Config -> "Sets for this site"
- Site Sets can inherit other site sets
settings.yaml
is available in v12 inside theconfig/sites
folder- This was then replicated in a site set to centralise settings & allow to be shared
- Settings are rendered as if they were in
constants.typoscript
- Can access them in TypoScript and Fluid
- There is also a new method/attribute on a site config (
getSettings()
)
- Any
setup.typoscript
andpage.tsconfig
inside the site set folder will be loaded automatically - Site sets are a at a site level (can't load on individual pages)
- Once using site sets - remove the TYpoScript include (E.g.
EXT:form/Configuration/TypoScript/setup
) and, instead, import the site set- Encourage ext authors to use site sets
- No more db changes are needed (e.g.
sys_template
) - Sit settings also replace
constants.typoscript
(although still compatible)
Related Links
- TYPO3 Docs
- Example implementation
- How to maintain an extension for multiple TYPO3 versions with and without site sets
TYPO3 Agencies and AI: An Experience Report - Fabian Stein
T3DD Schedule Link / Slides (tbc) / Video (tbc)
- AI is seen as boring, disruptive and as an uncertainty
- AI will not replace people in the short/mid-term
- Clients are highly interested in AI, but they don't know how to use it
- Use cases
- Getting information (e.g. FAQs)
- Help with text editing
- Generating stock images
- How can we support use of AI?
- Tell success stories
- Workshops - give people time to understand
- Offer guidance
- AI is change, and change is scary
- RAG Workflow
- Advantages
- Easy to update
- Easy to change
- Many opportunities to use it
- Disadvantages
- Difficult to set up
- Still can generate wrong answers
- Advantages
- Open Source LLMs
- Lama 3.1 (still needs a lot of resources)
- Gaia-X
- OpenGPT-x
- Although no public progress since September last year
- OpenGPT-x
Testing with Doubles: Why, When, and How? - Sebastian Bergmann
T3DD Schedule Link / Slides / Video (tbc)
This was a more practical talk that went a little over my head, hence the small notes
- Testing double is like a stunt double
- Saves money as your double replaces "expensive" calls
- Terms
- Dummy object - no methods
- Test stub - object & methods
- Test Spy - keeps track of which methods and properties called
- Mock object - expect X to be called Y times
- Test stub
- Looks like a real object
- Can be configured to return a value or throw exception
- Mock object
- Looks like a real object
- Can accept messages
- Test communications between objects
- PHP makes mock objects dynamic
- E.g. with
createStub
- E.g. with
- PHPStan reads certain comments (e.g.
@template
) to better testing - also this helps with IDE hinting - Never mock what isn't yours
Links
Time Management for Developers - Rachel Foucard
T3DD Schedule Link / Slides (tbc) / Video (tbc)
- Perception
- Rachel told the story of rocks in a jar
- Detect when something is good enough
- You can add more value by focusing on more features, rather than whittling something to perfection
- Past / Present / Future -> Not Now / Now / Not Now -> Done / In Progress / To Do
- Days are routine which can help you synchronise with others but sometimes feel like they are running away from you
- Social Acceleration
- Technical (e.g. sending an email instead of a letter)
- Social Change (e.g. postal workers losing jobs because of email)
- Pace of Life (e.g. instantaneous communication instead of waiting for a letter)
- Synchronisation
- Meetings!
- Use the same tools to plan your personal life as you do your professional life
- Tools
- Mandatory tools are ones your stakeholders/company use
- Personal tools are the ones you prefer
- The best tool is the one that you use regularly
- If a task is less than 5 minutes, don't add it to your To Do, do it now
- Personal To do lists should be: Update -> Watch -> Update -> Watch (etc)
- Should look at your to do list at least 3 times a day
- Synchronous tools (e.g. PM tools) should follow the same pattern but be looked at daily
- Anticipation
- Executing the task before time
- Forseeing tasks
- Emergency vs Priority is Fast vs First
- Never plan 5 days of work a week - it doesn't exist
- Track your time - not just for your company but for you, see where your time goes and it gives you better estimations
Other Talk Resources
- TYPO3 New APIs - Oliver Bartsch
- How to Make Web Design Work for Everyone with Accessibility - Sebastian Spill, Linnea Erlich
- State of CSS 2024 - Benjamin Kott