init
This commit is contained in:
84
user/plugins/flex-objects/classes/Events/FlexTaskEvent.php
Normal file
84
user/plugins/flex-objects/classes/Events/FlexTaskEvent.php
Normal file
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
|
||||
namespace Grav\Plugin\FlexObjects\Events;
|
||||
|
||||
use Grav\Framework\Flex\Interfaces\FlexCollectionInterface;
|
||||
use Grav\Framework\Flex\Interfaces\FlexDirectoryInterface;
|
||||
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
|
||||
use Grav\Framework\Object\Interfaces\ObjectInterface;
|
||||
use Grav\Plugin\FlexObjects\Controllers\AbstractController;
|
||||
|
||||
/**
|
||||
* @template T as FlexObjectInterface
|
||||
* @template C as FlexCollectionInterface
|
||||
*/
|
||||
class FlexTaskEvent
|
||||
{
|
||||
/** @var string */
|
||||
public $task;
|
||||
/** @var string */
|
||||
public $type;
|
||||
/** @var string */
|
||||
public $key;
|
||||
|
||||
/** @var ObjectInterface */
|
||||
private $object;
|
||||
/** @var AbstractController */
|
||||
private $controller;
|
||||
|
||||
/**
|
||||
* @param AbstractController $controller
|
||||
* @param string $task
|
||||
*/
|
||||
public function __construct(AbstractController $controller, ObjectInterface $object, string $task)
|
||||
{
|
||||
$this->task = $task;
|
||||
$this->type = $controller->getDirectoryType();
|
||||
$this->key = $controller->getObjectKey();
|
||||
$this->object = $object;
|
||||
$this->controller = $controller;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return AbstractController
|
||||
*/
|
||||
public function getController(): AbstractController
|
||||
{
|
||||
return $this->controller;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return FlexDirectoryInterface
|
||||
*/
|
||||
public function getDirectory(): FlexDirectoryInterface
|
||||
{
|
||||
return $this->getController()->getDirectory();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return FlexObjectInterface
|
||||
* @phpstan-return T
|
||||
*/
|
||||
public function getModifiedObject(): FlexObjectInterface
|
||||
{
|
||||
return $this->object;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return FlexObjectInterface
|
||||
* @phpstan-return T
|
||||
*/
|
||||
public function getOriginalObject(): FlexObjectInterface
|
||||
{
|
||||
return $this->controller->getObject();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return FlexCollectionInterface
|
||||
* @phpstan-return C
|
||||
*/
|
||||
public function getCollection(): FlexCollectionInterface
|
||||
{
|
||||
return $this->getController()->getDirectory()->getCollection();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user