silverstripe-framework/src/Forms/GridField/GridFieldStateAware.php

41 lines
933 B
PHP

<?php
namespace SilverStripe\Forms\GridField;
use SilverStripe\Core\Injector\Injector;
/**
* A trait that makes a class able to consume and use a {@link GridFieldStateManagerInterface}
* implementation
*/
trait GridFieldStateAware
{
/**
* @var GridFieldStateManagerInterface
*/
protected $stateManager;
/**
* @param GridFieldStateManagerInterface $manager
* @return self
*/
public function setStateManager(GridFieldStateManagerInterface $manager): self
{
$this->stateManager = $manager;
return $this;
}
/**
* Fallback on the direct Injector access, but allow a custom implementation
* to be applied
*
* @return GridFieldStateManagerInterface
*/
public function getStateManager(): GridFieldStateManagerInterface
{
return $this->stateManager ?: Injector::inst()->get(GridFieldStateManagerInterface::class);
}
}