immediate / im-fabric-wordpress
Immediate Fabric WordPress支持包
Requires
- php: >=7.1
Requires (Dev)
- 10up/wp_mock: 0.3.0
- phpunit/phpunit: ^6.5
README
Immediate Fabric WordPress支持包。
简介
此包旨在解决在WordPress开发中存在的两个主要问题
- 可测试性;
- 松散类型。
通过在抽象层中包装对WordPress的某些调用,解决了第一个问题,允许单元测试可靠地模拟这些调用。
通过将松散类型参数转换为更可预测和可测试的实体,解决了松散类型问题。
安装
此包作为一个支持包,通常在使用Fabric插件骨架时自动安装。目前,需要在您的插件的composer.json
文件中包含仓库引用。
"repositories": [ { "type": "vcs", "url": "git@github.immediate.co.uk:WCP-Packages/im-fabric-wordpress.git" } ],
要求
- PHP >=7.1
- WordPress
使用
此包尽可能地匹配原始WordPress函数名称,以减少使用WordPress功能时的学习曲线和可能的混淆。大部分情况下,WordPress的snake_case函数被简单地替换为camelCase方法。
操作
addAction(string $hook, Action $action)
为钩子包装WordPress add_action
函数。
使用
而不是作为第二个参数的标准可调用函数,addAction()
期望一个严格类型的Action
对象。
doAction(string $hook[, mixed $arg])
为钩子包装WordPress do_action
函数。
使用
此方法与原始功能匹配。
removeAction(string $hook, Action $action)
为钩子包装WordPress remove_action
函数。
使用
而不是作为第二个参数的标准可调用函数,removeAction()
期望与原始Action添加的完全相同的实例。如果在Action内部调用removeAction()
,可以将$this
作为Action参数传递。
过滤器
addFilter(string $hook, Filter $filter)
为钩子包装WordPress add_filter
函数。
使用
而不是作为第二个参数的标准可调用函数,addFilter()
期望一个严格类型的Filter
对象。
applyFilters(string $hook, mixed $value)
WordPress apply_filters
函数钩子的包装器。
用法
此方法与原始功能匹配。
removeFiler(string $hook, Filter $filter)
WordPress remove_filter
函数钩子的包装器。
用法
与第二个参数的标准可调用对象不同,removeFilter()
需要原始 Filter 添加时的确切实例。如果在 Filter 内部调用 removeFilter()
,可以将 $this
作为 Filter 参数传递。
菜单
registerMenuLocation(MenuLocation $menuLocation)
菜单位置的 WordPress register_nav_menu
函数的包装器。
用法
而不是分别传递位置和描述的字符串参数,registerMenuLocation()
需要一个严格的类型 MenuLocation
对象。
小工具
registerWidgetArea(WidgetArea $widgetArea)
小工具区域的 WordPress register_sidebar
函数的包装器。
用法
而不是传递包含小工具区域详情的数组,registerWidgetArea()
需要一个严格的类型 WidgetArea
对象。
registerWidget(Widget $widget)
小工具的 WordPress register_widget
函数的包装器。
用法
此方法与原始功能类似,但仅接受严格的类型 Widget
对象。