matteohertel / mh-widget
具有内置解析器的灵活小部件系统
0.1.0
2015-02-17 00:13 UTC
This package is not auto-updated.
Last update: 2024-09-28 16:05:11 UTC
README
演示: http://test.matteohertel.uk/mh_widget/
灵活、高度可配置的小部件系统,用任何内容替换HTML占位符。
此包的主要目的是与文本编辑器(如CKEditor)一起使用,为最终用户实现灵活的小部件系统(http://docs.ckeditor.com/#!/guide/widget_sdk_tutorial_1)
此包将提供一个精美、整洁的界面来创建可用于任何项目的现成小部件,它具有许多开箱即用的功能,但因其灵活的特性可以满足任何需求。
使用此包的主要有两种方式
- 独立使用小部件系统作为渲染HTML的简单方法
- 使用集成解析器的小部件系统
要独立使用小部件
- 创建 \MHDev\WidgetCore\MH_Widget 的实例
- 将实例作为函数调用(以触发魔法
__invkoke
),传递两个参数(一个可选):命名空间,配置数组 - 底层,类将
- 在指定的命名空间中创建所需小部件的新实例(或使用默认的 \MHDev\Widgets\ 并传递配置对象)
- 将实例作为函数调用(以触发魔法
__invkoke
)并返回结果
单个小部件的工作流程是
- 从魔法调用中,调用
controller
方法 controller
方法调用model
方法以获取数据controlle
r 将调用并返回视图方法,传递来自模型的 数据- 如果配置数组中存在
prevent_view
键,则控制器将返回模型的数据而不会调用视图
- 如果配置数组中存在
###使用解析器 使用集成解析器,您可以使用自定义的非标准HTML标签mhwidget以及属性来渲染来自小部件的内容,以下是一个工作标签的示例
<mhwidget size="128" email="youremail@gravatr.com">Gravatar</mhwidget>
##底层实现
要成为适当的小部件,类必须扩展 WidgetAbstract 类并重写 __invoke
、controller
、model
和 view
方法,
##用法
简单的“你好,世界”
$widget = new \MHDev\WidgetCore\MH_Widget("\MHDev\Widgets\\");
echo $widget("Example\HelloWorld");
Gravatar
$widget = new \MHDev\WidgetCore\MH_Widget("\MHDev\Widgets\\");
echo $widget("Gravatar", ["email" => "info@matteohertel.com", "size" => 80]);
##示例 要查看包的实际应用,请运行以下操作(必须在控制台中可用 php)
git clone https://github.com/matteo-hertel/MH_Widget.git
cd MH_Widget
php -S localhost:8080 -t ./Example
然后打开您的浏览器到 https://:8080
版本
0.2
反馈
请将您的反馈发送给我,使用GitHub上的问题跟踪器或通过电子邮件至 info[at]matteohertel.com
依赖项
没有外部依赖项,但解析器需要本机 DOMDocument 类,并且小部件标签语法必须正确才能正常工作
许可证
MIT