Instantly share code, notes, and snippets.

View Component_Atom_DefaultElement.fusion
prototype(My.Package:Form.DefaultElement) < prototype(Neos.Fusion:Component) {
id = ''
name = ''
label = ''
value = null
isRequired = false
properties = Neos.Fusion:RawArray
validationErrors = Neos.Fusion:RawArray
View rollyourown.php
// Context: I'm trying to argue that DI (and DIC) are great, and DIC libs suck.
// Happy to be proven wrong!
final class Router {
private $dependencies;
public function __construct (Dependencies $dependencies) {
$this->dependencies = $dependencies;
// You might say that this is Service Locator, but it's not. This router is toplevel,
// and toplevel must have access to dependencies. After that it can all just bubble nicely using proper DI.
View Routes.yaml
uriPattern: '{@action}/{segments}.html'
'@package': 'Some.Package'
'@controller': 'SomeController'
'@action': 'index'
'@format': 'html'
handler: 'Some\Package\Routing\SegmentsRoutePart'
View SomeCommandController.php
namespace Some\Package\Command;
use Neos\Flow\Annotations as Flow;
use Neos\Flow\Cli\CommandController;
class SomeCommand extends CommandController
View ExampleEvent.php
namespace Some\Package
use Neos\EventSourcing\Event\EventInterface;
final class ExampleEvent implements EventInterface
* @var UserId
View FacetViewHelper.php
namespace Wwwision\Test\ViewHelpers\Link;
use Neos\FluidAdaptor\Core\ViewHelper\AbstractTagBasedViewHelper;
use Neos\FluidAdaptor\Core\ViewHelper;
* Simple ViewHelper to create facet filter links
* Usage:
View SimpleTemplateView.php
namespace Some\Package\View;
use TYPO3\Flow\Mvc\View\AbstractView;
use TYPO3\Flow\Reflection\ObjectAccess;
class SimpleTemplateView extends AbstractView
* @var array
View ActionIfGrantedViewHelper.php
namespace Your\Package\ViewHelpers\Link;
use TYPO3\Flow\Annotations as Flow;
use TYPO3\Flow\Aop\JoinPoint;
use TYPO3\Flow\Mvc\ActionRequest;
use TYPO3\Flow\Security\Authorization\Privilege\Method\MethodPrivilegeInterface;
use TYPO3\Flow\Security\Authorization\Privilege\Method\MethodPrivilegeSubject;
use TYPO3\Flow\Security\Authorization\PrivilegeManagerInterface;
use TYPO3\Fluid\ViewHelpers\Link\ActionViewHelper;
View DetectSubdomainComponent.php
namespace Your\Package;
use TYPO3\Flow\Annotations as Flow;
use TYPO3\Flow\Http\Component\ComponentContext;
use TYPO3\Flow\Http\Component\ComponentInterface;
use TYPO3\Flow\Mvc\Routing\RoutingComponent;
use TYPO3\Flow\Utility\Arrays;
class DetectSubdomainComponent implements ComponentInterface
View Index.html
<f:form action="upload" enctype="multipart/form-data">
<f:form.upload name="resources[]" additionalAttributes="{multiple: true}" />
<f:form.submit value="Upload new resources"/>