Skip to content

Instantly share code, notes, and snippets.

🏠
Working from home

Bastian Waidelich bwaidelich

🏠
Working from home
View GitHub Profile
@bwaidelich
bwaidelich / SomeIdentifier.php
Last active Apr 7, 2020
Example of a "constant" value object that can be compared
View SomeIdentifier.php
<?php
final class SomeIdentifier
{
/**
* @var string
*/
private $value;
/**
* @var self[]
View index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Intro to XState</title>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<div id="box"></div>
@bwaidelich
bwaidelich / ServerSentComponent.php
Created Nov 14, 2019
Example: Flow HTTP Component for Server-Sent Events
View ServerSentComponent.php
<?php
declare(strict_types=1);
namespace Some\Package\Http;
use Neos\Flow\Http\Component\ComponentContext;
use Neos\Flow\Http\Component\ComponentInterface;
use Neos\Flow\Http\Helper\MediaTypeHelper;
final class ServerSentComponent implements ComponentInterface
{
@bwaidelich
bwaidelich / CacheFlusher.php
Last active Sep 2, 2019
Neos CMS: Get (relative) Node Url upon publishing
View CacheFlusher.php
<?php
namespace Some\Package;
use Neos\ContentRepository\Domain\Model\NodeInterface;
use Neos\ContentRepository\Domain\Model\Workspace;
use Neos\Eel\FlowQuery\FlowQuery;
use Neos\Flow\Annotations as Flow;
use Neos\Flow\Http\HttpRequestHandlerInterface;
use Neos\Flow\Mvc\ActionRequest;
use Neos\Flow\Mvc\Routing\UriBuilder;
@bwaidelich
bwaidelich / JsonCapableExceptionView.php
Created Jun 19, 2019
Render Neos / Flow exceptions as JSON if a corresponding Accept / Content-Type header is set
View JsonCapableExceptionView.php
<?php
declare(strict_types=1);
namespace Some\Package\Error;
use Neos\Flow\Annotations as Flow;
use Neos\Flow\Http\Helper\ResponseInformationHelper;
use Neos\Flow\Http\Request;
use Neos\Flow\Mvc\Controller\ControllerContext;
use Neos\Flow\Mvc\View\ViewInterface;
use Neos\Utility\MediaTypes;
@bwaidelich
bwaidelich / SiteRequestPattern.php
Last active Jun 6, 2019
Neos Flow Authentication Provider Request Pattern matching Neos Sites by their node name
View SiteRequestPattern.php
<?php
declare(strict_types=1);
namespace Some\Package;
use Neos\Flow\Annotations as Flow;
use Neos\Flow\Mvc\ActionRequest;
use Neos\Flow\Mvc\RequestInterface;
use Neos\Flow\Security\Context;
use Neos\Flow\Security\Exception as SecurityException;
use Neos\Flow\Security\Exception\InvalidRequestPatternException;
View AuthenticationContext.php
<?php
declare(strict_types=1);
namespace Some\Package\Security;
use Neos\Cache\CacheAwareInterface;
use Neos\Flow\Annotations as Flow;
/**
* @Flow\Scope("singleton")
*/
@bwaidelich
bwaidelich / main.go
Last active Jan 31, 2019
Golang Value Object tests
View main.go
package main
import (
"fmt"
"regexp"
)
// EmailAddress Value Object
type EmailAddress string
@bwaidelich
bwaidelich / Root.fusion
Created Jan 15, 2019
Atomic Fusion: Content with TOC
View Root.fusion
prototype(Some.Package:Component.ContentWithToc) < prototype(Neos.Fusion:Component) {
blocks = Neos.Fusion:RawArray
renderer = afx`
<nav>
<ul>
<Neos.Fusion:Collection collection={props.blocks} itemName="block" @children="itemRenderer">
<li>
<a href={'#c-' + iterator.cycle}>{block.label}</a>
</li>
@bwaidelich
bwaidelich / MainMenuItems.fusion
Created Jan 4, 2019
Fusion based Menu implementation for Neos CMS
View MainMenuItems.fusion
prototype(Some.Package:MainMenuItems) < prototype(Neos.Fusion:Component) {
renderer = Neos.Fusion:RawCollection {
collection = ${q(site).children('[instanceof Neos.Neos:Document]').get()}
@context.rootline = ${q(documentNode).parents('[instanceof Neos.Neos:Document]').get()}
itemName = 'node'
itemRenderer = Some.Package:Component.Organism.Menu.Item {
title = ${q(node).property('title')}
href = Neos.Neos:NodeUri {
node = ${node}
}
You can’t perform that action at this time.