syndicatetheory / multi-tenant-bundle
本包最新版本(dev-master)的许可证信息不可用。
[开发中] Symfony2 多租户包
dev-master
2012-09-15 08:26 UTC
Requires
- php: >=5.3.2
This package is not auto-updated.
Last update: 2024-09-24 08:49:36 UTC
README
SyndMultiTenantBundle 为您的应用程序添加多租户支持。将您的实体设置为实现 MultiTenantInterface
,您将获得以下好处:
- 自动分配给活动租户
- 自动按活动租户过滤仓库调用
什么是租户?
租户简单地是指代表一组独立数据的任何类。它可以是站点(例如,您使用 clientname.appname.com
,或者它可以是您需要唯一数据的公司或用户帐户。
通过让您的租户实体实现 TenantInterface
,您可以由您的应用程序处理实现细节。
租户选择策略
该包提供了一个默认的 HostnameStrategy 类,它尝试根据租户的 hostname 字段获取租户。稍后会添加更多,或者您可以通过实现 TenantStrategyInterface
使用您自己的策略 - 该接口简单返回一个 TenantInterface
。
示例候选者:
- 站点实体
- 用户实体
- 公司实体
与多租户实体一起工作
您的实体类需要实现 MultiTenantInterface
,它定义了 getTenant
和 setTenant
方法。之后,您就不必担心特定租户的数据了。
它是通过监听新实体被持久化,并自动调用带有活动租户的 setTenant 来实现的。
还有一个新的默认实体仓库类(MultiTenantEntityRepository
),它自动为多租户实体实例化。它自动按活动租户过滤所有查询。
如果您有自定义仓库类,请确保扩展此类而不是默认的 EntityRepository。
安装
通过 composer.json 安装,并在您的 app/config.yml 中添加以下配置
synd_multi_tenant:
domainstrategy:
entity_class: Acme\YourBundle\Entity\User
entity_field: domain