zenify / doctrine-extensions-tree
v4.2
2016-12-28 23:52 UTC
Requires
- php: ^7.0
- gedmo/doctrine-extensions: ~2.4
- nette/di: ~2.4
- nette/reflection: ^2.4
Requires (Dev)
- kdyby/doctrine: ~3.1
- nette/bootstrap: ~2.4
- phpunit/phpunit: ~5.6
- tracy/tracy: ~2.4
- zenify/coding-standard: ^4.0
README
从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一个特性
我们非常乐意合并您的特性!