neos / neos-development-collection

The unified repository containing the Neos core packages, used for Neos development.
https://www.neos.io/
GNU General Public License v3.0
264 stars 222 forks source link

BUG: CachingHelper uses unsupported API method #4279

Closed johannessteu closed 4 months ago

johannessteu commented 1 year ago

Is there an existing issue for this?

Current Behavior

The CachingHelper is using $node->getContentStreamIdentifier() here. This method is no longer supported on ~8.3.0 and fails with an NodeMethodIsUnsupported exception

Expected Behavior

CachingHelper should not fail at all

Steps To Reproduce

Fusion:

@context.node = ${site}
somePages = ${q(site).find('[instanceof Neos.Neos:Document]').get(0)}

Environment

You are using the deprecated option "installed". Only installed packages are shown by default now. The --all option can be used to show all packages.
neos/behat                           8.3.0      Behat support package for Neos Flow
neos/buildessentials                 8.3.0      Neos Flow Build Toolchain Essentials
neos/cache                           8.3.1      Neos Cache Framework
neos/composer-plugin                 2.1.3      Flow Composer Plugin
neos/content-repository              8.3.2      Content repository based on Flow, specifically made for Neos.
neos/diff                            8.3.2      This is a comprehensive library for generating differences between two strings or arrays
neos/eel                             8.3.1      The Embedded Expression Language (Eel) is a building block for creating Domain Specific Languages
neos/error-messages                  8.3.1      Flow error messages
neos/flow                            8.3.1      Flow Application Framework
neos/flow-log                        8.3.1      Flow Framework Logger
neos/fluid-adaptor                   8.3.1      Fluid Templating Framework Adaptor
neos/fusion                          8.3.2      Fusion is a hierarchical, prototype based processing language
neos/fusion-afx                      8.3.2      JSX inspired compact syntax for Neos.Fusion
neos/fusion-form                     v2.1.1     Fusion Form
neos/http-factories                  8.3.1      PSR-17 HTTP Factories
neos/imagine                         3.3.2
neos/media                           8.3.2      The Media package
neos/media-browser                   8.3.2      This module allows managing of media assets including pictures, videos, audio and documents.
neos/neos                            8.3.2      An open source Content Application Platform based on Flow. A set of core Content Management features i...
neos/neos-ui                         8.3.0      Neos CMS UI written in React
neos/neos-ui-compiled                8.3.0
neos/party                           7.0.4      A party package for PHP based on the OASIS Customer Information Quality (CIQ) XML Standard.
neos/redirecthandler                 5.0.3      Basic API to handle HTTP redirects with the Flow Framework
neos/redirecthandler-databasestorage 5.0.2      A plugin for neos/redirecthandler to store redirects in the database
neos/redirecthandler-neosadapter     4.3.1      Neos Redirect Handler
neos/redirecthandler-ui              2.4.6      This package provides a backend module to manage Neos.RedirectHandler redirects
neos/seo                             3.3.4      SEO configuration and tools for Neos
neos/twitter-bootstrap               3.0.7      Simple and flexible HTML, CSS, and Javascript for popular user interface components and interactions. ...
neos/utility-arrays                  8.3.1      Flow Array Utilities
neos/utility-files                   8.3.1      Flow Files Utilities
neos/utility-mediatypes              8.3.1      Flow Media Types Utilities
neos/utility-objecthandling          8.3.1      Flow array/object property and type utilities
neos/utility-opcodecache             8.3.1      Flow Opcode Cache Utilities
neos/utility-pdo                     8.3.1      Flow PDO Utilities
neos/utility-schema                  8.3.1      Flow Schema Utilities
neos/utility-unicode                 8.3.1      Flow Unicode Utilities

Anything else?

No response

kitsunet commented 1 year ago

@johannessteu the interesting question would be when do you have a TraversableNodeInterface that is not a NodeInterface (thus going into the first condition) in 8.3?

johannessteu commented 1 year ago

Hey @kitsunet 👋🏻 I actually didn't dig too deep into it yet, was adding that fusion code to https://github.com/networkteam/Networkteam.Neos.ContentApi#extending-api-site-properties as i'm testing the next integration right now. Wondering if it's then an issue with this custom rendering there 🤔

mhsdesign commented 4 months ago

Jup i think we can close this as wont fix. Neither the current Node nor the NodeInterface or the TraversableNodeInterface will survive 9.0

In parts it looks like one can implement a custom node by implementing only the TraversableNodeInterface but this is not true. If you do anything unexpected (probably hacky) you have to extend the whole Node to make sure everything works.

So the check against TraversableNodeInterface was made as forward compatible idea but we were on the wrong track.