geniv / nette-alias-router
Nette 框架的数据库别名路由器扩展
v3.1.7
2019-05-11 16:31 UTC
Requires
- php: >=7.0
- dibi/dibi: >=3.0
- geniv/nette-locale: >=2.0
- latte/latte: >=2.4
- nette/application: >=2.4
- nette/caching: >=2.5
- nette/di: >=2.4
- nette/http: >=2.4
- nette/neon: >=2.4
- nette/utils: >=2.4
- tracy/tracy: >=2.4
- dev-master
- v3.1.7
- v3.1.6
- v3.1.5
- v3.1.4
- v3.1.3
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.2
- v3.0.1
- v3.0.0
- v2.1.8
- v2.1.7
- v2.1.6
- v2.1.5
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.2.1
- v1.2.0
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- dev-develop
This package is auto-updated.
Last update: 2024-09-12 04:33:50 UTC
README
安装
$ composer require geniv/nette-alias-router
或
"geniv/nette-alias-router": "^3.1"
require
"php": ">=7.0", "nette/application": ">=2.4", "nette/caching": ">=2.5", "nette/di": ">=2.4", "nette/http": ">=2.4", "nette/neon": ">=2.4", "nette/utils": ">=2.4", "latte/latte": ">=2.4", "tracy/tracy": ">=2.4", "dibi/dibi": ">=3.0", "geniv/nette-locale": ">=2.0"
包含在应用程序中
可用的源驱动程序
- ArrayDriver (数组)
- NeonDriver ()
- DibiDriver (dibi + cache
_AliasRouter-DibiDriver
)
在路由器别名中,不是好主意更改最后一个别名,而是插入一个新的别名并带有新的时间戳。
neon 配置
route: cs: "staticky-slug": "Homepage:pokus" "staticky-slug1": "Homepage:pokus2" en: "static-slu": "Homepage:pokus" "static-slug1": "Homepage:pokus2" # alias router aliasRouter: # debugger: true # autowired: true # driver: AliasRouter\Drivers\ArrayDriver(%route%) # driver: AliasRouter\Drivers\NeonDriver(%appDir%/router.neon) driver: AliasRouter\Drivers\DibiDriver(%tablePrefix%) # enabled: true # domainAlias: # example.cz: cs # example.com: en # example.de: de
neon 配置扩展
extensions: aliasRouter: AliasRouter\Bridges\Nette\Extension
可用接口: IAliasRouter
RouterFactory.php
public static function createRouter(ILocale $locale, IAliasRouter $aliasRouter): IRouter ... if ($aliasRouter->isEnabled()) { $aliasRouter->setDefaultParameters('Homepage', 'default', 'cs'); $aliasRouter->setPaginatorVariable('visualPaginator-page'); //$aliasRouter->setSecure(true); //$aliasRouter->setOneWay(true); $router[] = $aliasRouter->getRouter(); }
在 @layout.latte 中使用
{if $presenter->context->hasService('aliasRouter.default')} {ifset slug} {include slug|addSlug} {/ifset} {/if}
手动创建或删除
use AliasRouter\Drivers\IDriver; $this->context->getByType(IDriver::class)->deleteRouter('Homepage', 'default'); $this->context->getByType(IDriver::class)->createRouter('Homepage', 'default', 'muj alias'); $this->context->getByType(IDriver::class)->createRouter('Homepage', 'default', 'muj alias XX', ['locale' => 'en']);