此包的最新版本(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);