We weren't just at the first TYPO3 Camp of the year in Dresden for the giveaways, but also to listen to interesting talks, exchange ideas and meet nice people. Our positive experiences from the last few years also persuaded us to make the slightly longer journey to Saxony this year. That's why three little dots made their way to Dresden by train in the sunshine on Thursday lunchtime.
The camp was once again held on the premises of the German Hygiene Museum. After registration and breakfast, we started with the introduction to the camp, the sponsors and the session planning.
As with the last camps, the organization was flawless and the session schedule quickly filled up with exciting topics.
Of course, the physical well-being was also taken care of - with breakfast, hot lunch and cakes and rolls in the afternoon. On Friday evening, we went to the social event at the Bärenzwinger student club. We spent a great evening with the other camp participants in this cool location with delicious soup and sausages.
For those who didn't make it to Dresden, we present a small selection of the topics below, including further links.
TYPO3 10 Topics
There were some very interesting talks about TYPO3 10. Here are a few highlights from the ones we attended:
Routing / Slugs / Notification API
In our opinion, one of the best new features in TYPO3 10 is the automatic regeneration of the speaking paths (slugs) when a page is renamed. This is done not only for the page in question but also for all pages below it. In addition, corresponding redirects are automatically created for the old paths.
The Notification API, which has also been extended in TYPO3 10, proves to be very helpful here. A corresponding notification informs you about the changes made and you then have the option of undoing them. Such additional user interaction via the Notification API with the help of buttons or links was not possible before TYPO3 10.
Event Handling (PSR-14)
The PSR-14 standard was designed and developed in collaboration with Symfony, Zend and TYPO3. This makes it possible to use event handling instead of Signal/Slot from TYPO3 10 onwards. The use of Signal/Slot is still possible, but is not recommended. The existing hooks in TYPO3 10 cannot yet be replaced by events.
https://typo3.org/article/typo3-version-102-treasure-hunting#c10396
https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Hooks/EventDispatcher/Index.html
An overview of important core events can be found in the TYPO3 documentation. All existing events are listed in the "Configuration" module in the backend.
Dependency Injection (PSR-11)
And another PSR! Since TYPO3 10, dependency injection is no longer possible via the annotation @inject and @TYPO3\CMS\Extbase\Annotation\Inject is no longer recommended. Now you can either use the inject method as before or the dependency injection according to PSR-11. The second variant also works outside the Extbase context.
Frontend login
The extension for the frontend login (felogin) has finally been converted to Extbase and Fluid for TYPO3 10.
The frontend login email templates have also been converted to Fluid and now allow HTML and text emails to be sent. The password reset now allows a validation of the entered password. For all those who do not yet want to or cannot use the new frontend login, there is a feature toggle in the maintenance area to switch to the old version of felogin. This means that existing customizations and templates can continue to be used during a TYPO3 update.
Other topics
In addition to these topics, there are of course other cool improvements and features, such as the link validator, the form framework and the middlewares, which we cannot list here.
We recommend the recordings of the TYPO3 Camp livestream from Friday and Saturday and the release notes for the various versions of TYPO3 10.
For friends of Internet Explorer, however, there is bad news: TYPO3 10 no longer offers support for Internet Explorer for the backend. This means that new developments for the backend will no longer be tested with Internet Explorer and may not work properly.
Further topics
In addition to TYPO3 10, there were other interesting topics, a few of which we would also like to introduce to you.
Various TYPO3 extensions
- Benni Mack presented the extension menus, which uses Fluid instead of HMENU. With this extension, many different menus on a page are delivered with better performance.
- The long way from fl_staticfilecache via nl_staticfilecache to staticfilecache: Tim Lochmüller is in charge of this extension and presented it briefly. With this extension it is possible to generate static HTML pages from TYPO3 - also a potential performance gain. The extension also supports HTTP2 and push headers.
- If you need more json-ld markup in your application to provide structured data, you should take a look at the extension schema by Chris Müller. It can be used to generate the required markup both via API and with the help of ViewHelpers.
- The convenient configuration of the solr server and cores within the site handling also deserves a mention here. This eliminates a large part of the typoscript, which consisted of various conditions and was therefore confusing, especially for pages with many languages and cores. This is also a good example for anyone who wants to add fields to the site configuration themselves.
Testing with GrumPHP
GrumPHP can be used for quality control in projects by running various tests and linters using git hooks. For example, a git commit that violates best practices defined in the team can be prevented.
In his talk, Andreas Kiessling not only presented various examples and configurations in a very competent manner, but also kindly shared the link to his settings for TYPO3 extensions.
Our contribution to the camp
We were also able to pass on our knowledge to the camp participants with an interesting presentation on "Extending frontend authorizations". Ursula Klinger presented a possibility of implementation if the implementation with frontend groups becomes too complex or too confusing.
For this purpose, the individual authorization features are essentially assigned to the user and the pages/content elements and, among other things, a class that implements QueryRestrictionInterface is added.
Conclusion
On Saturday afternoon the camp was unfortunately already over, there was applause for the sponsors and the organizers of the event as well as the award ceremony for the best 3 talks of the past 2 days. It was another great camp for us and we rounded off the afternoon with a visit to the German Hygiene Museum.
During the return trip on Sunday, of course, we didn't laze around, quite the opposite. We discussed, tried out and documented until our laptop batteries were empty so that we could quickly put what we had heard and learned to good use for ourselves and our customer projects.
We are already looking forward to the next TYPO3 Camp Central Germany 2021 - perhaps then in Leipzig.