Sindbad~EG File Manager
<?php
namespace O2switch\CpanelLib\Entity;
use Doctrine\ORM\Mapping as ORM;
use O2switch\CpanelLib\Repository\ChainRepository;
use O2switch\CpanelLib\DataEntity\ApiVhost;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Chain
*
* @ORM\Table(
* name="Chain",
* uniqueConstraints={
* @ORM\UniqueConstraint(name="unique_index", columns={"customizationId", "previousChainId", "position"})
* },
* indexes={
* @ORM\Index(name="IDX_70C337CE837341C5", columns={"customizationId"})
* }
* )
* @ORM\Entity(repositoryClass=ChainRepository::class)
*/
class Chain
{
/**
* @var int
*
* @ORM\Column(name="id", type="bigint", nullable=false)
* @ORM\Id()
* @ORM\GeneratedValue()
*/
private $id;
/**
* @var int
* @ORM\Column(name="previousChainId", type="bigint", nullable=false, options={"default"="-1"})
* @Assert\NotNull()
* @Assert\NotBlank()
* @Assert\Type(type="integer")
*/
private $previousChainId = -1;
/**
* @var int
* @ORM\Column(name="position", type="integer", nullable=false)
* @Assert\NotNull()
* @Assert\NotBlank()
* @Assert\Type(type="integer")
*/
private $position;
/**
* @var int
* @ORM\Column(name="appType", type="integer", nullable=false)
* @Assert\Choice(choices={Customization::APP_NGINX, Customization::APP_VARNISH, Customization::APP_LSCACHE})
*/
private $appType;
/**
* @var string
* @ORM\Column(name="serverIp", type="string", length=15, nullable=false)
* @Assert\NotNull()
* @Assert\NotBlank()
* @Assert\Ip()
*/
private $serverIp;
/**
* @var string
* @ORM\Column(name="templateName", type="string", length=60, nullable=false)
* @Assert\NotNull()
* @Assert\NotBlank()
*/
private $templateName;
/**
* @var array|null
*
* @ORM\Column(name="additionalData", type="json", length=65535, nullable=true)
*/
private $additionalData;
/**
* @var Customization
*
* @ORM\ManyToOne(targetEntity=Customization::class, inversedBy="chains", cascade={"persist"})
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="customizationId", referencedColumnName="id", nullable=false)
* })
*/
private $customization;
public function __construct(?ApiVhost $vhost = null, ?string $app = null){
if($vhost instanceof ApiVhost){
$this->setTemplateName($vhost->getTemplateName());
$this->setServerIp($vhost->getListenToIp());
if(!empty($vhost->getAdditionalsParams())) {
$this->setAdditionalData($vhost->getAdditionalsParams());
}
}
switch($app){
case 'xtremcache':
case 'varnish':
$this->setAppType(Customization::APP_VARNISH);
$this->setPosition(1);
break;
case 'ipxtender':
$this->setAppType(Customization::APP_NGINX);
$this->setPosition(0);
$this->setPreviousChainId(-1);
break;
case 'lslb':
case 'lscache':
case 'litespeed':
$this->setAppType(Customization::APP_LSCACHE);
$this->setPosition(1);
break;
case 'forwarder':
$this->setAppType(Customization::APP_NGINX);
$this->setPosition(2);
break;
}
}
/**
* @return int
*/
public function getPreviousChainId(): int
{
return $this->previousChainId;
}
/**
* @param int $previousChainId
* @return Chain
*/
public function setPreviousChainId(int $previousChainId): Chain
{
$this->previousChainId = $previousChainId;
return $this;
}
/**
* @return int
*/
public function getPosition(): int
{
return $this->position;
}
/**
* @param int $position
* @return Chain
*/
public function setPosition(int $position): Chain
{
$this->position = $position;
return $this;
}
/**
* @return int
*/
public function getAppType(): int
{
return $this->appType;
}
/**
* @param int $appType
* @return Chain
*/
public function setAppType(int $appType): Chain
{
$this->appType = $appType;
return $this;
}
/**
* @return string
*/
public function getServerIp(): string
{
return $this->serverIp;
}
/**
* @param string $serverIp
* @return Chain
*/
public function setServerIp(string $serverIp): Chain
{
$this->serverIp = $serverIp;
return $this;
}
/**
* @return string
*/
public function getTemplateName(): string
{
return $this->templateName;
}
/**
* @param string $templateName
* @return Chain
*/
public function setTemplateName(string $templateName): Chain
{
$this->templateName = $templateName;
return $this;
}
/**
* @return array|null
*/
public function getAdditionalData(): ?array
{
return $this->additionalData;
}
/**
* @param array|null $additionalData
* @return Chain
*/
public function setAdditionalData(?array $additionalData): Chain
{
$this->additionalData = $additionalData;
return $this;
}
/**
* @return Customization
*/
public function getCustomization(): Customization
{
return $this->customization;
}
/**
* @param Customization $customization
* @return $this
*/
public function setCustomization(Customization $customization): Chain
{
$this->customization = $customization;
return $this;
}
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists