zenify/doctrine-extensions-tree

此包已被弃用且不再维护。作者建议使用nettrine/extensions包代替。

从DoctrineExtensions到Nette的树实现。

v4.2 2016-12-28 23:52 UTC

This package is auto-updated.

Last update: 2022-01-27 10:58:31 UTC


README

Build Status Quality Score Code Coverage Downloads Latest stable

DoctrineExtensions到Nette的树实现。

安装

composer require zenify/doctrine-extensions-tree

注册扩展

# app/config/config.neon
extensions:
	- Zenify\DoctrineExtensionsTree\DI\TreeExtension

用法

对于实体实现,请参考手册

非常简单的实体可能如下所示

namespace App\Entities;

use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;


/**
 * @ORM\Entity(repositoryClass="App\Model\CategoryTree")
 * @Gedmo\Tree(type="materializedPath")
 */
class Category
{

	/**
	 * @ORM\Column(type="integer")
	 * @ORM\Id
	 * @ORM\GeneratedValue
	 */
	public $id;

	/**
	 * @Gedmo\TreePathSource
	 * @ORM\Column(type="string")
	 * @var string
	 */
	private $name;

	/**
	 * @Gedmo\TreeParent
	 * @ORM\ManyToOne(targetEntity="Category", cascade={"persist"})
	 * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", nullable=TRUE)
	 * @var Category
	 */
	private $parent;

	/**
 	 * @Gedmo\TreePath(separator="|")
	 * @ORM\Column(type="string", nullable=TRUE)
	 * @var string
	 */
	private $path;


	/**
	 * @param string $name
	 * @param Category $parent
	 */
	public function __construct($name, Category $parent = NULL)
	{
		$this->name = $name;
		$this->parent = $parent;
	}


	/**
	 * @return string
	 */
	public function getName()
	{
		return $this->name;
	}


	/**
	 * @return Category
	 */
	public function getParent()
	{
		return $this->parent;
	}


	/**
	 * @return string
	 */
	public function getPath()
	{
		return $this->path;
	}

}

以及它的仓库

namespace App\Model;

use Gedmo\Tree\Entity\Repository\MaterializedPathRepository;


class CategoryTree extends MaterializedPathRepository
{

}

测试

composer check-cs # see "scripts" section of composer.json for more details 
vendor/bin/phpunit

贡献

规则很简单

  • 新功能需要测试
  • 所有测试必须通过
  • 每个PR一个特性

我们非常乐意合并您的特性!