pvsaintpe/ltree-bundle
Composer 安装命令:
composer require pvsaintpe/ltree-bundle
包简介
Symfony 4 bundle for postgresql ltee extension
README 文档
README
Installation:
composer require pvsaintpe/ltree-bundle
Using
- Create Entity class:
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping\Entity; use LTree\Annotation\LTreeChilds; use LTree\Annotation\LTreeEntity; use LTree\Annotation\LTreeParent; use LTree\Annotation\LTreePath; use LTree\Repository\LTreeEntityInterface; /** * Class TestEntity * @package LTree\Entity * * @Entity(repositoryClass="LTree\Entity\TestRepository") * @LTreeEntity() */ class TestEntity implements LTreeEntityInterface { /** * @ORM\Id() * @ORM\GeneratedValue(strategy="AUTO") * @ORM\Column(type="integer") */ private $id; /** * @LTreePath() * @ORM\Column(type="ltree") */ private $path = null; /** * @LTreeParent() * @ORM\ManyToOne(targetEntity="TestEntity", inversedBy="children") * @ORM\JoinColumn(name="parent_id", referencedColumnName="id") */ private $parent; /** * @LTreeChilds() * @ORM\OneToMany(targetEntity="TestEntity", mappedBy="parent", cascade={"all"}, orphanRemoval=true) * @ORM\JoinColumn(onDelete="CASCADE") */ private $children; /** * Constructor */ public function __construct() { $this->children = new ArrayCollection(); } }
- Create Repository class:
use Doctrine\ORM\EntityManagerInterface; use LTree\Repository\LTreeEntityRepository; /** * Class TestRepository * * @method TestEntity|null find($id, $lockMode = null, $lockVersion = null) * @method TestEntity|null findOneBy(array $criteria, array $orderBy = null) * @method TestEntity[] findAll() * @method TestEntity[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) * * @package LTree\Entity */ class TestRepository extends LTreeEntityRepository { /** * TestRepository constructor. * @param EntityManagerInterface $registry */ public function __construct(EntityManagerInterface $registry) { parent::__construct($registry, $registry->getClassMetadata(TestEntity::class)); } }
- Create Extension via migration
public function up(Schema $schema) : void { $this->addSql('CREATE IF NOT EXISTS EXTENSION ltree'); } ...
- Configure Doctrine Type via config (packages/doctrine.yaml):
doctrine: dbal: url: '%env(resolve:DATABASE_URL)%' types: ltree: LTree\Types\LTreeType
- Configure Bundle via config (bundles.php):
LTree\LTreeExtensionBundle::class => ['all' => true],
pvsaintpe/ltree-bundle 适用场景与选型建议
pvsaintpe/ltree-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 195 次下载、GitHub Stars 达 10, 最近一次更新时间为 2019 年 04 月 26 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「symfony」 「php」 「postgresql」 「nested」 「ltree」 「symfony4」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 pvsaintpe/ltree-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 pvsaintpe/ltree-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 pvsaintpe/ltree-bundle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
SilverStripe now has tentative support for PostgreSQL ('Postgres')
Dibi is Database Abstraction Library for PHP
The bundle for easy using json-rpc api on your project
Sql dumps containing databases for the linna apps.
Bundle Symfony DaplosBundle
Manage PostgreSQL schemas in Laravel applications
统计信息
- 总下载量: 195
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 11
- 点击次数: 11
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-04-26