beromir/neos-ray

Debug your Neos site with the Ray app.

Installs: 123

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 2

Forks: 0

Open Issues: 0

Type:neos-package

v1.4.0 2022-04-21 10:55 UTC

This package is not auto-updated.

Last update: 2024-04-18 20:12:18 UTC


README

Debug your Neos site with the Ray app.
Ray is a debugger app from Spatie. You can find more information about Ray on https://myray.app/.
Official Ray docs: https://spatie.be/docs/ray/v1/introduction.

Installation

Run the following command in your site package:

composer require --no-update beromir/neos-ray

Then run composer update in your project root.

Requirements

You need to have the Ray app installed and a valid license. You can download the app here: https://spatie.be/docs/ray/v1/the-ray-desktop-app/download-the-free-demo.

Configuration

Create the configuration file ray.php in your Neos site root directory.
Configuration options: https://spatie.be/docs/ray/v1/configuration/framework-agnostic-php.
Configuration options when you use Docker: https://spatie.be/docs/ray/v1/environment-specific-configuration/docker.

Usage

You can use all Ray functions from https://spatie.be/docs/ray/v1/usage/framework-agnostic-php-project.
Reference list (just the PHP specific functions): https://spatie.be/docs/ray/v1/usage/reference.

To use the functions, you must add them as key-value pairs in Fusion.
If the function does not require any parameters, you can use null, false or an empty string as the value.
To pass parameters, add them as a value.

valueToDebug = 'Show this text in the Ray app.'
valueToDebug.@process.debug = Beromir.Ray:Debug {
   // Show a label in the Ray app
   label = 'Text'
   // Colorize the output
   red = ''
   // Show the output as large text
   large = ''
}
valueToDebug = 'Show this text in the Ray app.'
valueToDebug.@process.debug = Beromir.Ray:Debug {
   // Show a label in the Ray app
   label = 'Text'
   // Only send a payload once when in a loop
   once = ${node}
}

Debug a Fusion expression:

valueToDebug = 'Show this text in the Ray app.'
valueToDebug.@process.debug = Beromir.Ray:Debug

Alternative ways:

// Debug the current node
debug = Beromir.Ray:Debug {
   value = ${node}
}

renderer = afx`
   {props.debug}
`
renderer = afx`
   <Beromir.Ray:Debug value={node}/>
`

Debug multiple values:

debug = Beromir.Ray:Debug {
   // Pass the values as an array
   value = ${[node, site]}
}

renderer = afx`
   {props.debug}
`

Use Debug Actions to debug NodeTypes:

// Display the NodeType name of the node
debug = Beromir.Ray:Debug {
   value = ${node}
   debugAction = 'nodeTypeName'
}

renderer = afx`
   {props.debug}
`
// Display the properties of the current node and the site node
debug = Beromir.Ray:Debug {
   value = ${[node, site]}
   debugAction = 'properties'
}

renderer = afx`
   {props.debug}
`

You can use the following Debug Actions for NodeTypes:

Debug Action Description
nodeTypeName Display the NodeType name of a node
context Display the context of a node
contextPath Display the context path of a node
properties Display the properties of a node

Eel Helper

You can also use the Ray Eel helper to debug your site.

{Beromir.Ray.debug(node)}

{Beromir.Ray.debug([node, site])}

The second parameter can be used to set a debug action for NodeTypes.

{Beromir.Ray.debug(node, 'properties')}