senj / dynamic-subdomain-bundle
Symfony3 动态子域名处理 Bundle
1.0.0
2017-02-26 15:53 UTC
Requires
- php: >=5.5.9
- symfony/framework-bundle: ~3.1
This package is not auto-updated.
Last update: 2024-09-28 20:14:49 UTC
README
安装
在 composer.json
"require": { "senj/dynamic-subdomain-bundle": "dev-master" }
在 app/AppKernel.php
$bundles = array( # [...] new Senj\DynamicSubdomainBundle\SenjDynamicSubdomainBundle(), # [...] );
配置
在 app/config.yaml
senj_dynamic_subdomain: base_host: domain.com parameter_name: ~ entity: Acme\DemoBundle\Entity\MySite property: ~
-
base_host
:- 域名基础主机,所有子域名都附加在此
- 必需
- 示例:
domain.com
-
parameter_name
:- 将在当前
Request
上设置的参数名称 - 可选
- 默认值:
subdomain
- 将在当前
-
entity
:- 映射到子域名的实体类或Doctrine别名
- 必需
- 示例:
Acme\DemoBundle\Entity\MySite
-
property
:- 在您的实体中存储子域名名称的属性名称
- 可选
- 默认值:
subdomain
-
method
:- 将被调用的以获取具有定义属性的对象的名称的方法
- 可选
- 默认值:
findOneBy
使用
- 创建映射到您的子域名的实体
- 通过 Symfony
Request
对象获取当前子域名对象
在 php 中,假设 senj_dynamic_subdomain.property
等于 subdomain
(默认值)
use Symfony\Component\HttpFoundation\Request; class DefaultController extends Controller { public function indexAction(Request $request) { $subdomainobject = $request->attributes->get('subdomain'); var_dump($subdomainobject); }
在 twig 中,假设 senj_dynamic_subdomain.property
等于 subdomain
(默认值),并且映射到子域名的实体具有 title
属性
{{ app.request.attributes.get('subdomain').title }}
注意
如果数据库中找不到子域名,Bundle 将抛出异常(Symfony\Component\HttpKernel\Exception\NotFoundHttpException
)。