matteohertel/mh-widget
最新稳定版本:0.1.0
Composer 安装命令:
composer require matteohertel/mh-widget
包简介
Flexible widget system with built in parser
README 文档
README
Demo: http://test.matteohertel.uk/mh_widget/
Flexible, highly configurable widget system replace an HTML place holder with any content.
The main purpose for this package was to be used alongside a text editor like CKEditor to implement a flexible widget system for the end user(http://docs.ckeditor.com/#!/guide/widget_sdk_tutorial_1)
This package will provide a nice and neat interface to create widgets ready to use in any project, there are a lots of feature straight out of the box, but with its flexible nature can fit any need.
There are two main ways to use this package:
- Use the widget system standalone as easy way to render HTML
- Use the widget system with the integrated parser
To use the widget standalone:
- Create an instance of \MHDev\WidgetCore\MH_Widget
- Call the instance as a function (to trigger the magic
__invkoke) passing two arguments (one optional): namespace, config array - under the hood the class will:
- create a new instance of the requested widget in the given namespace(or use the default one \MHDev\Widgets\ and pass the config object
- call the instance as function (to trigger the magic
__invkoke) and return the result
The single widget workflow is:
- from the magic invoke the the
controllermethod is called - the
controllermethod call themodelmethod to get data - the
controller will call and return the view method passing the data from the model- if the
prevent_viewkay is found in the config array the controller will return the data from the model without call the view
- if the
###Using the parser With the integrated parser you can use a custom non-standard html tag mhwidget with attributes to render content from the widget, and example of a working tag:
<mhwidget size="128" email="youremail@gravatr.com">Gravatar</mhwidget>
##Under the hood
To be a proper widget the class must extend the WidgetAbstract class and override the __invoke, controller, model and view methods,
##Usage
Simple hello world
$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]);
##Example To see the package in action run the following(php must be available in the console):
git clone https://github.com/matteo-hertel/MH_Widget.git
cd MH_Widget
php -S localhost:8080 -t ./Example
the open your browser to http://localhost:8080
Version
0.2
Feedback
Please, send me your feedback, using the issue tracker on github or via email to info[at]matteohertel.com
Dependencies
There are no external dependencies but the Parser require the native DOMDocument class and a the widget tag syntax must be right to work properly
License
MIT
统计信息
- 总下载量: 165
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-02-17