Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What's new in Neos?

What's new in Neos?

Presenting news from the Neos CMS core team, held at the Neos Meetup Düsseldorf on Oct 16, 2018.

Bastian Heist

October 16, 2018
Tweet

More Decks by Bastian Heist

Other Decks in Programming

Transcript

  1. Bastian Heist • Full-Stack-Entwickler | Sandstorm • Neos Core Team

    Member seit 2017 • 7 Jahre SAP ERP Consultant | Merck @beheist @bastianheist
  2. Teaching a child how to make lasagna The 52 types

    of lasagna A cooking recipe 
 for lasagna The history and development of lasagna Types of Documentation https://www.divio.com/blog/documentation/ TUTORIALS REFERENCE HOW-TO 
 EXPLANATION
  3. https://discuss.neos.io/t/rfc-cleanup-fusion-prototype-names/3646 Neos.Fusion:RawArray >> Neos.Fusion:Map | Dictionary Neos.Fusion:Array >> Neos.Fusion:Concatenation Neos.Fusion:Collection

    >> Neos.Fusion:Iteration | Loop Neos.Fusion:RawCollection >> Neos.Fusion:Mapping -- new -- >> Neos.Fusion:Reduction !!! WIP !!!
  4. https://github.com/neos/neos-development-collection/pull/2192 Fusion spreads • Populate many Fusion properties at once

    from a key-value map • Very useful when using https:// www.neos.io/blog/atomic- fusion.html
  5. Without Spreads foo = Neos.Fusion:Collection { collection = ${props.teasers} itemName

    = "item" itemRenderer = Vendor.Site:Teaser { title = ${item.title} image = ${item.image} text = ${item.text} uri = ${item.uri} } }
  6. With Spreads foo = Neos.Fusion:Collection { collection = ${props.teasers} itemName

    = "item" itemRenderer = Vendor.Site:Teaser { // Assuming "item" is a mapping component @properties.applyItem = ${item} } }
  7. Passing through of props // or: foo = Neos.Fusion:Component {

    renderer = afx` <Vendor.Site:Component {...props} /> ` }
  8. CQRS and ES primer • ES = Event Sourcing •

    Records all changes to an 
 application's state as persistent events.
  9. CQRS and ES primer • CQRS = Command / Query

    
 Responsibility Segregation • Splits the read and write sides 
 of an application’s data model.
  10. CQRS Read Write Command Handler Command Domain Logic / Aggregates

    Event Query Models Query Models Query Models Projection Query
  11. Want to know more? • https://www.neos.io/blog/cqrs-and-eventsourcing-thinking-in- events.html • https://sandstorm.de/de/blog/post/event-sourced-content- repository.html

    • https://www.neoscon.io/talks/the-event-sourced-content- repository-for-neos.html • https://discuss.neos.io/t/event-sourced-cr-technical-todo-list
  12. PSR-7 • A set of RFCs to implement common HTTP

    request and response interfaces • Also concerns Streams, URIs, and uploaded files
  13. The road to PSR-7 • Starting with Flow 5.1, there

    was / will be some refactoring in the Flow core https://www.neos.io/blog/neos-is-on-the-road-to-psr-7-compatibility.html
  14. The road to PSR-7 • You may have seen these:

    https://www.neos.io/blog/neos-is-on-the-road-to-psr-7-compatibility.html $this->request->getHttpRequest()->
 getArgument("foo"); $this->request->getHttpRequest()->
 setHeader("X-Bar", "baz");
  15. The road to PSR-7 • Don't act on this yet!

    • There will be more refactoring • No breaking changes before Flow 6.0 (of course) https://www.neos.io/blog/neos-is-on-the-road-to-psr-7-compatibility.html
  16. The road to PSR-7 • Biggest issue right now: Requests

    and Responses in PSR-7 are immutable • A lot of Flow needs to be changed to accomodate this https://www.neos.io/blog/neos-is-on-the-road-to-psr-7-compatibility.html