positibe / 发布
PositibeLabs 项目的基础库,用于发布实体
0.2.0.0
2017-03-29 14:18 UTC
Requires
- php: >=5.3
This package is not auto-updated.
Last update: 2024-09-28 20:14:50 UTC
README
此库提供了一些特性,可用于实现 Symfony\Cmf\Bundle\CoreBundle\Translatable\TranslatableInterface
和 Symfony\Cmf\Bundle\CoreBundle\PublishWorkflow\PublishTimePeriodInterface
接口的 doctrine 实体。
PublishableTrait
此特质为实现 TranslatableInterface
的实体提供了默认映射。
[php]
namespace Positibe\Component\Publishable\Entity;
trait PublishableTrait
{
/**
* @var boolean
*
* @ORM\Column(name="publishable", type="boolean")
*/
protected $publishable = true;
public function isPublishable()
{
return $this->publishable;
}
public function setPublishable($boolean)
{
$this->publishable = $boolean;
}
}
PublishTimePeriodTrait
此特质为实现 PublishTimePeriodInterface
的实体提供了默认映射。
[php]
namespace Positibe\Component\Publishable\Entity;
trait PublishTimePeriodTrait
{
/**
* @var \DateTime
*
* @ORM\Column(name="publish_start_date", type="datetime", nullable=TRUE)
*/
protected $publishStartDate;
/**
* @var \DateTime
*
* @ORM\Column(name="publish_end_date", type="datetime", nullable=TRUE)
*/
protected $publishEndDate;
public function setPublishStartDate(\DateTime $startDate = null)
{
$this->publishStartDate = $startDate;
}
public function getPublishStartDate()
{
return $this->publishStartDate;
}
public function setPublishEndDate(\DateTime $endDate = null)
{
$this->publishEndDate = $endDate;
}
public function getPublishEndDate()
{
return $this->publishEndDate;
}
}
使用 PHP 特质
这些是简单的 PHP 特质,所以你可以这样使用它们。
[php]
namespace Blog\Entity;
use Symfony\Cmf\Bundle\CoreBundle\PublishWorkflow\PublishTimePeriodInterface;
use Symfony\Cmf\Bundle\CoreBundle\PublishWorkflow\PublishableInterface;
use Positibe\Component\Publishable\Entity\PublishableTrait;
use Positibe\Component\Publishable\Entity\PublishTimePeriodTrait;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table()
* @ORM\Entity
*/
class Post implement PublishableInterface, PublishTimePeriodInterface
{
use PublishableTrait;
use PublishTimePeriodTrait;
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
}
注意,你不需要创建任何东西来实现这些接口。
注意:要使用特质系统,您需要使用 PHP > 5.4。
重要:此库不直接依赖于 symfony-cmf/core-bundle,因此您可以在不使用此库的情况下使用它,并且需要安装以使用接口。