boyhagemann / html
此包的最新版本(dev-master)没有可用的许可信息。
以面向对象的方式在PHP中构建html元素
dev-master
2013-07-19 15:34 UTC
This package is not auto-updated.
Last update: 2024-09-23 13:36:56 UTC
README
此包使得在PHP中以面向对象的方式构建html元素变得简单。它允许您尽可能轻松地操作基本的html结构。设置好html之后,它可以被渲染为一个字符串。
此包分为三个部分
- [元素] (#the-elements)
- [构建器] (#the-html-builder)
- [渲染器] (#the-renderer)
如何安装
使用此包最简单的方式是使用Composer。将以下行添加到您的composer.json文件中
"require": { "boyhagemann/html": "dev-master" }
元素
此包基于一个简单的Element类。它具有属性,可以包含嵌套作为子元素的其它元素。
使用元素
从一个新的元素开始很简单
use Boyhagemann\Html\Table; $table = new Table;
更改元素的属性
$table->attr('class', 'fancy-table');
您可以轻松插入一个新元素
$table->insert($tr = new Tr());
插入带文本的元素
$tr->insert(new Td('This is a nice text');
您可以轻松编辑每个子元素
$tr->eachChild(function($td, $i) { $td->attr('class', 'my-class') $td->setValue('My value ' . $i); });
Html构建器
使用构建器,您可以构建html并操作元素的结构。
您可以向父元素中插入新元素
use Boyhagemann\Html\Builder; $builder new Builder; $builder->insert(new Table, 'tr');
将自定义元素注册到构建器中
注册一个回调,以便每次都获取一个新的实例
$builder->register('myCustomElement', function() { $element = new Element; $element->setName('thead'); $element->attr('class', 'example-class'); return $element; }
或者注册一个实例以每次都使用相同的实例
$builder->register('myTable', new Table);
或者注册一个类
$builder->register('myTd', 'Your\Html\Td');
使用已注册的元素
现在我们可以在整个项目中使用这个元素。
$builder->register('table', new Table); $table = $builder->resolve('table'); $tr = $builder->resolve('tr'); $td = $builder->resolve('BoyHagemann\Html\Elements\Td');
我们可以用它来插入元素
$builder->insert('myTable', 'myCustomElement', function($thead) { $thead->insert(new Td('Title'); $thead->insert(new Td('Description'); }
或者插入多个元素并编辑它们的属性
$builder->insertMultiple('myTable', 'tr', 5, function($tr) { // You can edit each table row now $tr->attr('class', 'my-row-class'); $tr->insert(new Td('First value'); $tr->insert(new Td('Second value'); });
渲染器
将您的html表格渲染为... html
use Boyhagemann\Html\Renderer; $renderer = new Renderer; // The result is a string with valid html $html = $renderer->render($table);