Skip to content

Instantly share code, notes, and snippets.

View bwaidelich's full-sized avatar
🏠
Working from home

Bastian Waidelich bwaidelich

🏠
Working from home
View GitHub Profile
@bwaidelich
bwaidelich / SketchSystems.spec
Last active January 10, 2021 11:56
Powered*
Powered*
power failed -> Unpowered
Green*
tick -> Yellow
Yellow
tick -> Red
Red
@bwaidelich
bwaidelich / FusionEmailFinisher.php
Created August 6, 2020 08:22
A Fusion/Eel capable Flow Form Email Finisher
<?php
namespace Your\Package\Form\Finishers;
use Neos\Eel\EelEvaluatorInterface;
use Neos\Eel\Exception as EelException;
use Neos\Eel\Package as EelPackage;
use Neos\Eel\Utility as EelUtility;
use Neos\Flow\Annotations as Flow;
use Neos\Flow\ResourceManagement\PersistentResource;
use Neos\Flow\ResourceManagement\ResourceManager;
@bwaidelich
bwaidelich / Customer.php
Last active July 29, 2020 10:13
Serializable Value Object
<?php
final class Customer implements \JsonSerializable
{
private CustomerId $id;
private FullName $name;
public function __construct(CustomerId $id, FullName $name)
{
$this->id = $id;
@bwaidelich
bwaidelich / SomeIdentifier.php
Last active January 14, 2022 09:34
Example of a "constant" value object that can be compared
<?php
final class SomeIdentifier
{
/**
* @var string
*/
private $value;
/**
* @var self[]
@bwaidelich
bwaidelich / index.html
Last active March 23, 2023 14:44 — forked from mpj/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 November 14, 2019 16:09
Example: Flow HTTP Component for Server-Sent Events
<?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 September 2, 2019 08:11
Neos CMS: Get (relative) Node Url upon publishing
<?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 June 19, 2019 09:20
Render Neos / Flow exceptions as JSON if a corresponding Accept / Content-Type header is set
<?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 June 6, 2019 12:49
Neos Flow Authentication Provider Request Pattern matching Neos Sites by their node name
<?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;
@bwaidelich
bwaidelich / AuthenticationContext.php
Created February 13, 2019 13:00
Dynamic ACL in Neos Flow
<?php
declare(strict_types=1);
namespace Some\Package\Security;
use Neos\Cache\CacheAwareInterface;
use Neos\Flow\Annotations as Flow;
/**
* @Flow\Scope("singleton")
*/