natepage / easy-html-element
在PHP中创建简单或复杂HTML元素的简单方法。
Requires
- php: ^7.0
- airmanbzh/php-html-generator: ^1.0
- zendframework/zend-escaper: ^2.5
Requires (Dev)
- laravel/framework: ^5.3
- symfony/config: ~3.0
- symfony/dependency-injection: ~3.0
- symfony/http-kernel: ~3.0
- twig/twig: ~2.0
Suggests
- symfony/yaml: Allows you to define the elements map in YAML to make it easier!
This package is auto-updated.
Last update: 2024-08-29 05:04:28 UTC
README
在PHP中创建简单或复杂HTML元素的简单方法。
EasyHtmlElement 是一个开源软件库,允许您定义HTML元素映射,并在HTML代码中简单使用它们。您可以定义简单的元素,如链接、按钮、列表、图片或使用自定义类型。但这个库的强大之处在于可以定义具有属性、父元素、子元素或扩展其他元素属性的复杂HTML结构。在您的元素映射完成后,您只需使用一个PHP方法即可完成它!
##安装 ####Composer 从 https://getcomposer.org.cn/
查找有关Composer的所有信息
运行以下命令
$ composer require natepage/easy-html-element
####仓库 您可以直接克隆仓库,但您需要手动安装依赖项。
##使用 您在PHP中使用过数组吗?是的?太棒了!使用EasyHtmlElement,只需创建一个简单的PHP数组,其余的我们来处理!我们将这个数组称为 map ,在接下来的所有示例中。
因此,map 是一个简单的键/值数组,您将在其中定义HTML元素,如下所示
- 键(字符串):您将在代码中使用的元素名称
- 值(数组):所有元素信息
####简单示例
$map = array( 'myDiv' => array( 'type' => 'div', 'text' => 'Simple Div Example' ) ); $htmlElement = new NatePage\EasyHtmlElement\HtmlElement(); $div = $htmlElement->load('myDiv'); echo $div; /** * <div> * Simple Div Example * </div> */
在上面的示例中,我们只显示了一个简单的div,是的,我同意您真的不需要库来做这件事,但这是为了展示逻辑,如果您想看到EasyHtmlElement的真实力量,请继续阅读!
您可以看到,您不需要调用特定的方法来渲染元素,我们使用魔法方法 __toString() 来使您的生活更轻松! :)
####更复杂的示例(Bootstrap面板)
$map = array( //Base div 'div' => array( 'type' => 'div' ), //Base panel structure 'panel' => array( 'extends' => array('div'), 'attr' => array('class' => 'panel'), 'children' => array( 'panelHeading', 'panelBody', 'panelFooter' ) ), //Panel heading 'panelHeading' => array( 'extends' => array('div'), 'attr' => array('class' => 'panel-heading'), 'children' => array( array( 'name' => 'panelHeadingTitle', 'type' => 'h3', 'attr' => array('class' => 'panel-title'), 'text' => '%panel_title%' ) ) ), //Panel body 'panelBody' => array( 'extends' => array('div'), 'attr' => array('class' => 'panel-body'), 'text' => '%panel_body%' ), //Panel footer 'panelFooter' => array( 'extends' => array('div'), 'attr' => array('class' => 'panel-footer'), 'text' => '%panel_footer%' ), //Primary panel structure 'panelPrimary' => array( 'extends' => array('panel'), 'attr' => array('class' => 'panel-primary') ) ); $htmlElement = new \NatePage\EasyHtmlElement\HtmlElement($map); $panelPrimary = $htmlElement->load('panelPrimary', null, array(), array( 'panel_title' => 'My Panel Title', 'panel_body' => 'My Panel Body', 'panel_footer' => 'My Panel Footer' )); echo $panelPrimary; /** * <div class="panel-primary panel"> * <div class="panel-heading"> * <h3 class="panel-title">My Panel Title</h3> * </div> * <div class="panel-body"> * My Panel Body * </div> * <div class="panel-footer"> * My Panel Footer * </div> * </div> */
这里我们有
- 所有面板组件都扩展了 Base div 元素以获取 div 类型
- Base面板结构定义 children 以创建其内容
- 所有元素都使用 attr 定义自己的属性
- 面板标题直接在其子数组中定义一个动态子元素
- 主要面板结构扩展所有Base面板结构并添加一个CSS类
- 一些使用 %parameter% 语法定义的参数,允许您定义动态内容
仅在一个方法中创建复杂和动态的HTML结构,这正是EasyHtmlElement向您承诺的!
##集成 EasyHtmlElement 为以下提供了集成
- Symfony
- Twig
- Laravel
更多信息请参阅 集成。
##文档 您想了解更多关于EasyHtmlElement的功能吗?
阅读 文档。
##依赖关系
- airmanbzh/php-html-generator 用于渲染HTML元素
- zendframework/zend-escaper 使用转义策略安全地生成HTML代码
我们强烈建议您使用 symfony/yaml 使您的映射构建更容易。
##自定义 如果您需要自定义代码逻辑,EasyHtmlElement 一次又一次地使它更容易,通过一些接口。有关详细信息,请参阅 文档。
##贡献 如果您在代码中找到错误,文档中的错别字,如果您有改进的想法,或者只是想打个招呼! :)
EasyHtmlElement 版本管理遵循语义化版本控制指南,因此发布版本将按照以下格式进行编号:
MAJOR.MINOR.PATCH
有关 SemVer 的更多信息,请访问 http://semver.org