PositibeLabs 项目的基础 SEO 实体库

0.1.4.0 2017-04-11 03:03 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:36:35 UTC


README

此库为您提供了在实现 Symfony\Cmf\Bundle\SeoBundle\SeoAwareInterface 接口的 doctrine 实体中使用的一些特性。

SeoAwareEntityTrait

该特性为具有与 SEO 元数据实体关联的实体提供了默认映射。

[php]
<?php

namespace Positibe\Component\Seo\Entity;

use Symfony\Cmf\Bundle\SeoBundle\Model\SeoMetadata;

trait SeoAwareEntityTrait {
    /**
     * @var SeoMetadata
     *
     * @ORM\ManyToOne(targetEntity="Symfony\Cmf\Bundle\SeoBundle\Model\SeoMetadata", cascade="all")
     */
    protected $seoMetadata;

    /**
     * @return SeoMetadata
     */
    public function getSeoMetadata()
    {
        return $this->seoMetadata;
    }

    /**
     * @param $metadata
     * @return $this
     */
    public function setSeoMetadata($metadata)
    {
        $this->seoMetadata = $metadata;

        return $this;
    }
}

PublishTimePeriodTrait

该特性为存储所有 SEO 元数据数据的 Doctrine 对象的实体提供了默认映射。

[php]
<?php

namespace Positibe\Component\Seo\Entity;

use Symfony\Cmf\Bundle\SeoBundle\Model\SeoMetadata;

trait SeoAwareObjectTrait {

    /**
     * @var SeoMetadata
     *
     * @ORM\Column(type="object")
     */
    protected $seoMetadata;

    /**
     * @return SeoMetadata
     */
    public function getSeoMetadata()
    {
        return $this->seoMetadata;
    }

    /**
     * @param $metadata
     * @return $this
     */
    public function setSeoMetadata($metadata)
    {
        $this->seoMetadata = $metadata;

        return $this;
    }
}

使用 PHP 特性

这些是简单的 PHP 特性,因此您可以使用它们。

[php]
namespace Blog\Entity;

use Symfony\Cmf\Bundle\SeoBundle\SeoAwareInterface;
use Positibe\Component\Seo\Entity\SeoAwareEntityTrait;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Table()
 * @ORM\Entity
 */
class Post implement SeoAwareInterface
{
    use SeoAwareEntityTrait;

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;
}

注意,您无需创建任何内容即可实现这些接口。

注意: 要使用特性系统,您需要使用 PHP > 5.4。