sqrt-pro / tag
标签是SQRT框架的一部分
dev-master / 0.1.x-dev
2015-04-07 20:51 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2024-09-24 02:29:02 UTC
README
Tag
类允许生成HTML标签并设置它们的属性。除了直接使用 Tag
类外,还有一系列继承自 Tag
的类,用于快速创建常用的标签 <a>
、<img>
、<input>
、<select>
、<textarea>
、<form>
。
use SQRT\Tag; echo new Tag\A('#', 'hello'); // <a href="#">hello</a> echo new Tag\A('/one/', 'Hello', 'two', '_blank'); // <a class="two" href="/one/" target="_blank">Hello</a> echo new Tag('b', 'hello', array('style' => array('width' => '15px;', 'height' => '200px'))); // <b style="width: 15px; height: 200px;">hello</b> echo new Tag\Input('two', 123, 'one', 'email'); // <input class="one" name="two" type="email" value="123" /> $t = new Tag('input', '123', array('type' => 'text'), true); $t->setId('one'); $t->setClass('two'); $t->setName('one[two]'); $t->setStyle('width: 100px;'); echo $t->toHTML(); // <input class="two" id="one" name="one[two]" style="width: 100px;" type="text" value="123" />
为了生成 input[type=checkbox]
和 input[type=radio]
的选项列表,提供了 CheckboxListing
和 RadioListing
类。
$t = new Tag\CheckboxListing('age', array(10 => '10 лет', 20 => '20 лет', 30 => '30 лет')); $t->setSelected(array(10, 20)); // <label><input checked="checked" name="age" type="checkbox" value="10" /> 10 лет</label> // <label><input checked="checked" name="age" type="checkbox" value="20" /> 20 лет</label> // <label><input name="age" type="checkbox" value="30" /> 30 лет</label>
完整的示例集合可以在测试中找到。
属性合并
提供了 Tag::MergeAttr($attr, $_ = null)
方法,允许将多个属性组合并为一个。数组按键合并,值以空格分隔。
Tag::MergeAttr('one', array('id' => 'two')); // array('class' => 'one', 'id' => 'two'); Tag::MergeAttr('one', 'two'); // array('class' => 'one two'); Tag::MergeAttr(array('style' => 'border: red;'), array('class' => 'red', 'style' => 'color: green;')); // array('style' => 'border: red; color: green;', 'class' => 'red');