smic/dynamic-routing-pages
Composer 安装命令:
composer require smic/dynamic-routing-pages
包简介
Generates "limitToPages" configuration for your enhancers on the fly so you don't need to hardcode it.
README 文档
README
Instead of hardcoding the limitToPages configuration for your route enhancers this package can automatically detect
the necessary pages for you and generate the configuration on the fly.
Problem
Imagine the following typical routing configuration for the news plugin.
routeEnhancers:
NewsPages:
type: Extbase
# add every page-ID that contains a News Plugin
limitToPages:
- 23
- 42
- 123
- 242
extension: News
plugin: Pi1
routes:
- { routePath: '/{myNewsTitle}', _controller: 'News::detail', _arguments: {'myNewsTitle': 'news'} }
- { routePath: '/{myPagination}', _controller: 'News::list', _arguments: {'myPagination': '@widget_0/currentPage'} }
- { routePath: '/{year}/{month}', _controller: 'News::list', _arguments: {'year' : 'overwriteDemand/year', 'month' : 'overwriteDemand/month'} }
defaultController: 'News::list'
# ...
Hardcoding the page ids for your plugin routes has the major drawback that you have to adapt the configuration as soon as someone creates a new page with a plugin (which might happen in a CMS). With the route enhancers configuration not available in the Site module this means you have to ship an updated configuration file every time an editor creates a plugin page.
Solution
routeEnhancers:
NewsPages:
type: Extbase
dynamicPages:
withPlugin: news_pi1
extension: News
plugin: Pi1
routes:
- { routePath: '/{myNewsTitle}', _controller: 'News::detail', _arguments: {'myNewsTitle': 'news'} }
- { routePath: '/{myPagination}', _controller: 'News::list', _arguments: {'myPagination': '@widget_0/currentPage'} }
- { routePath: '/{year}/{month}', _controller: 'News::list', _arguments: {'year' : 'overwriteDemand/year', 'month' : 'overwriteDemand/month'} }
defaultController: 'News::list'
# ...
Notice the dynamicPages configuration. This package will populate the limitToPages with matching pages.
Reference
dynamicPages has three possible properties.
withPlugin
Can be a string or an array of tt_content.list_type values. Will find all pages that contain at least one of the given plugins.
containsModule
Can be a string or an array of pages.module values. Will find all pages that have "Contains Plugin" set to one of the given values.
withSwitchableControllerAction
Can be a string or an array of switchableControllerActions values. Will find all pages that contain plugins with the given action configured.
withCType
Can be a string or an array of withCType values. Will find all pages that contain content element with given CType.
withDoktypes
Can be an integer or an array of withDoktypes values. Will find all pages with given doktype.
smic/dynamic-routing-pages 适用场景与选型建议
smic/dynamic-routing-pages 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 125.84k 次下载、GitHub Stars 达 21, 最近一次更新时间为 2020 年 10 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 smic/dynamic-routing-pages 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 smic/dynamic-routing-pages 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 125.84k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 21
- 点击次数: 9
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-2.0-or-later
- 更新时间: 2020-10-20