PHPackages                             stagem/zfc-pool - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. stagem/zfc-pool

ActiveLibrary

stagem/zfc-pool
===============

Main Multisite Entity

4170PHP

Since Jan 9Pushed 7y ago2 watchersCompare

[ Source](https://github.com/stagemteam/zfc-pool)[ Packagist](https://packagist.org/packages/stagem/zfc-pool)[ RSS](/packages/stagem-zfc-pool/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

ZF Pool Module
==============

[](#zf-pool-module)

Information
-----------

[](#information)

Nowadays, we hear "multistore", "marketplace", "multidentistry", etc. Many modern systems developing by "multi" principle. This mean system haі one platform but use it different user which don't now about each other.

`ZfcPool` is a universal module which has several implemented `Strategy`s for simple divide your system by global parameters.

If you marked your `Model` as `PoolAware` it will be signal to system apply global condition for all queries relative to this `Model`.

You no longer need to apply the same condition to all queries. You have enough to mark `Model` as `PoolAware`and all work will be done automatically.

### Registered Strategies

[](#registered-strategies)

- **ParamStrategy** - allow you to switch between different `Pool` in one interface. For example, you sell products on different Amazon marketplaces and in one moment of time you want to see details only per one marketplace.
- **DomainStrategy** (not implemented yet) - allow you to manage different domain in one system.
- **UserStrategy** (not implemented yet) - allow you to apply different conditions relative to current user.

Usage
-----

[](#usage)

Mark you `Model` as `PoolAware`, for this use annotation `@Stagem\ZfcPool\Model\Annotation\PoolAware(fieldName="marketplace")`. You should pass in `fieldName` property name from `Model` and not column name from database. In our example, we have `marketplace` field in `Model` and `marketplaceId` column in database.

```
namespace Stagem\Product\Model;

use Doctrine\ORM\Mapping as ORM;
use Stagem\ZfcPool\Model\Annotation\PoolAware;
use Stagem\Amazon\Model\Marketplace;

/**
 * @PoolAware(fieldName="marketplace")
 * @ORM\Entity()
 * @ORM\Table(name="amazon_product_rank")
 */
class Rank
{
    //...

    /**
     * @var Marketplace
     * @ORM\ManyToOne(targetEntity="Stagem\Amazon\Model\Marketplace")
     * @ORM\JoinColumn(name="marketplaceId", referencedColumnName="id", nullable=true)
     */
    private $marketplace;
}
```

After this simple manipulation to all queries to *Rank* Model automatically will be added current Marketplace.

> Notice. `Stagem\Amazon\Model\Marketplace` implement `Stagem\ZfcPool\Model\PoolInterface`.

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 87.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/7dbdbd3abed25e11e97a69bc611daa3fe33ad5d1805f2fb32d491c888c4dfb51?d=identicon)[Serhii Popov](/maintainers/Serhii%20Popov)

---

Top Contributors

[![popovserhii](https://avatars.githubusercontent.com/u/1991183?v=4)](https://github.com/popovserhii "popovserhii (14 commits)")[![stagemteam](https://avatars.githubusercontent.com/u/37902825?v=4)](https://github.com/stagemteam "stagemteam (2 commits)")

### Embed Badge

![Health badge](/badges/stagem-zfc-pool/health.svg)

```
[![Health](https://phpackages.com/badges/stagem-zfc-pool/health.svg)](https://phpackages.com/packages/stagem-zfc-pool)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
