0 follower

Abstract Class Yiisoft\Html\Tag\Base\NormalTag

InheritanceYiisoft\Html\Tag\Base\NormalTag » Yiisoft\Html\Tag\Base\Tag
ImplementsYiisoft\Html\NoEncodeStringableInterface
SubclassesYiisoft\Html\Tag\A, Yiisoft\Html\Tag\Address, Yiisoft\Html\Tag\Article, Yiisoft\Html\Tag\Aside, Yiisoft\Html\Tag\Audio, Yiisoft\Html\Tag\B, Yiisoft\Html\Tag\Base\ListTag, Yiisoft\Html\Tag\Base\MediaTag, Yiisoft\Html\Tag\Base\TableCellTag, Yiisoft\Html\Tag\Base\TableRowsContainerTag, Yiisoft\Html\Tag\Body, Yiisoft\Html\Tag\Button, Yiisoft\Html\Tag\Caption, Yiisoft\Html\Tag\Code, Yiisoft\Html\Tag\Colgroup, Yiisoft\Html\Tag\Datalist, Yiisoft\Html\Tag\Div, Yiisoft\Html\Tag\Em, Yiisoft\Html\Tag\Fieldset, Yiisoft\Html\Tag\Footer, Yiisoft\Html\Tag\Form, Yiisoft\Html\Tag\H1, Yiisoft\Html\Tag\H2, Yiisoft\Html\Tag\H3, Yiisoft\Html\Tag\H4, Yiisoft\Html\Tag\H5, Yiisoft\Html\Tag\H6, Yiisoft\Html\Tag\Header, Yiisoft\Html\Tag\Hgroup, Yiisoft\Html\Tag\Html, Yiisoft\Html\Tag\I, Yiisoft\Html\Tag\Label, Yiisoft\Html\Tag\Legend, Yiisoft\Html\Tag\Li, Yiisoft\Html\Tag\Nav, Yiisoft\Html\Tag\Noscript, Yiisoft\Html\Tag\Ol, Yiisoft\Html\Tag\Optgroup, Yiisoft\Html\Tag\Option, Yiisoft\Html\Tag\P, Yiisoft\Html\Tag\Picture, Yiisoft\Html\Tag\Pre, Yiisoft\Html\Tag\Script, Yiisoft\Html\Tag\Section, Yiisoft\Html\Tag\Select, Yiisoft\Html\Tag\Small, Yiisoft\Html\Tag\Span, Yiisoft\Html\Tag\Strong, Yiisoft\Html\Tag\Style, Yiisoft\Html\Tag\Table, Yiisoft\Html\Tag\Tbody, Yiisoft\Html\Tag\Td, Yiisoft\Html\Tag\Textarea, Yiisoft\Html\Tag\Tfoot, Yiisoft\Html\Tag\Th, Yiisoft\Html\Tag\Thead, Yiisoft\Html\Tag\Title, Yiisoft\Html\Tag\Tr, Yiisoft\Html\Tag\Ul, Yiisoft\Html\Tag\Video

Base for all normal tags. Normal tags are the ones that have both opening tag and closing tag.

Protected Properties

Hide inherited properties

Property Type Description Defined By
$attributes array Yiisoft\Html\Tag\Base\Tag

Public Methods

Hide inherited methods

Method Description Defined By
__toString() Yiisoft\Html\Tag\Base\Tag
addAttributes() Add a set of attributes to existing tag attributes. Yiisoft\Html\Tag\Base\Tag
addClass() Add one or more CSS classes to the tag. Yiisoft\Html\Tag\Base\Tag
addStyle() Add CSS styles to the tag. Yiisoft\Html\Tag\Base\Tag
attribute() Set attribute value. Yiisoft\Html\Tag\Base\Tag
attributes() Replace attributes with a new set. Yiisoft\Html\Tag\Base\Tag
class() Replace current tag CSS classes with a new set of classes. Yiisoft\Html\Tag\Base\Tag
close() Yiisoft\Html\Tag\Base\NormalTag
id() Set tag ID. Yiisoft\Html\Tag\Base\Tag
open() Yiisoft\Html\Tag\Base\NormalTag
removeStyle() Remove CSS styles from the tag. Yiisoft\Html\Tag\Base\Tag
render() Yiisoft\Html\Tag\Base\Tag
tag() Yiisoft\Html\Tag\Base\NormalTag
unionAttributes() Union attributes with a new set. Yiisoft\Html\Tag\Base\Tag

Method Details

Hide inherited methods

__toString() public method
public string __toString ( )

                final public function __toString(): string
{
    return $this->render();
}

            
addAttributes() public method

Defined in: Yiisoft\Html\Tag\Base\Tag::addAttributes()

Add a set of attributes to existing tag attributes.

Same named attributes are replaced.

public Yiisoft\Html\Tag\Base\NormalTag addAttributes ( array $attributes )
$attributes array

Name-value set of attributes.

                final public function addAttributes(array $attributes): static
{
    $new = clone $this;
    $new->attributes = array_merge($new->attributes, $attributes);
    return $new;
}

            
addClass() public method

Defined in: Yiisoft\Html\Tag\Base\Tag::addClass()

Add one or more CSS classes to the tag.

public Yiisoft\Html\Tag\Base\NormalTag addClass ( \BackedEnum|string|null $class )
$class \BackedEnum|string|null

One or many CSS classes.

                final public function addClass(BackedEnum|string|null ...$class): static
{
    $new = clone $this;
    Html::addCssClass($new->attributes, $class);
    return $new;
}

            
addStyle() public method

Defined in: Yiisoft\Html\Tag\Base\Tag::addStyle()

Add CSS styles to the tag.

See also Yiisoft\Html\Html::addCssStyle().

public Yiisoft\Html\Tag\Base\NormalTag addStyle ( string|string[] $style, boolean $overwrite true )
$style string|string[]

The new style string (e.g. 'width: 100px; height: 200px') or array (e.g. ['width' => '100px', 'height' => '200px']).

$overwrite boolean

Whether to overwrite existing CSS properties if the new style contain them too.

                final public function addStyle(array|string $style, bool $overwrite = true): static
{
    $new = clone $this;
    Html::addCssStyle($new->attributes, $style, $overwrite);
    return $new;
}

            
after() protected method
protected string after ( )

                protected function after(): string
{
    return '';
}

            
attribute() public method

Defined in: Yiisoft\Html\Tag\Base\Tag::attribute()

Set attribute value.

public Yiisoft\Html\Tag\Base\NormalTag attribute ( string $name, mixed $value )
$name string

Name of the attribute.

$value mixed

Value of the attribute.

                final public function attribute(string $name, mixed $value): static
{
    $new = clone $this;
    $new->attributes[$name] = $value;
    return $new;
}

            
attributes() public method

Defined in: Yiisoft\Html\Tag\Base\Tag::attributes()

Replace attributes with a new set.

public Yiisoft\Html\Tag\Base\NormalTag attributes ( array $attributes )
$attributes array

Name-value set of attributes.

                final public function attributes(array $attributes): static
{
    $new = clone $this;
    $new->attributes = $attributes;
    return $new;
}

            
before() protected method
protected string before ( )

                protected function before(): string
{
    return '';
}

            
class() public method

Defined in: Yiisoft\Html\Tag\Base\Tag::class()

Replace current tag CSS classes with a new set of classes.

public Yiisoft\Html\Tag\Base\NormalTag class ( \BackedEnum|string|null $class )
$class \BackedEnum|string|null

One or many CSS classes.

                final public function class(BackedEnum|string|null ...$class): static
{
    $new = clone $this;
    unset($new->attributes['class']);
    Html::addCssClass($new->attributes, $class);
    return $new;
}

            
close() public method

public string close ( )
return string

Closing tag.

                final public function close(): string
{
    return '</' . $this->getName() . '>';
}

            
generateContent() protected abstract method

protected abstract string generateContent ( )

                abstract protected function generateContent(): string;

            
getName() protected abstract method

Defined in: Yiisoft\Html\Tag\Base\Tag::getName()

Get tag name.

protected abstract string getName ( )
return string

Tag name.

                abstract protected function getName(): string;

            
id() public method

Defined in: Yiisoft\Html\Tag\Base\Tag::id()

Set tag ID.

public Yiisoft\Html\Tag\Base\NormalTag id ( string|null $id )
$id string|null

Tag ID.

                final public function id(?string $id): static
{
    $new = clone $this;
    $new->attributes['id'] = $id;
    return $new;
}

            
open() public method

public string open ( )
return string

Opening tag.

                final public function open(): string
{
    return '<' . $this->getName() . $this->renderAttributes() . '>' . $this->prepend();
}

            
prepareAttributes() protected method
protected void prepareAttributes ( )

                protected function prepareAttributes(): void {}

            
prepend() protected method

protected string prepend ( )

                protected function prepend(): string
{
    return '';
}

            
removeStyle() public method

Defined in: Yiisoft\Html\Tag\Base\Tag::removeStyle()

Remove CSS styles from the tag.

See also Yiisoft\Html\Html::removeCssStyle().

public Yiisoft\Html\Tag\Base\NormalTag removeStyle ( string|string[] $properties )
$properties string|string[]

The CSS properties to be removed. You may use a string if you are removing a single property.

                final public function removeStyle(string|array $properties): static
{
    $new = clone $this;
    Html::removeCssStyle($new->attributes, $properties);
    return $new;
}

            
render() public method
public string render ( )

                final public function render(): string
{
    return $this->before() . $this->renderTag() . $this->after();
}

            
renderAttributes() protected method

Defined in: Yiisoft\Html\Tag\Base\Tag::renderAttributes()

Render the current tag attributes.

See also Yiisoft\Html\Html::renderTagAttributes().

protected string renderAttributes ( )

                final protected function renderAttributes(): string
{
    $this->prepareAttributes();
    return Html::renderTagAttributes($this->attributes);
}

            
renderTag() protected method

protected string renderTag ( )

                final protected function renderTag(): string
{
    return $this->open() . $this->generateContent() . $this->close();
}

            
tag() public static method

public static Yiisoft\Html\Tag\Base\NormalTag tag ( )

                final public static function tag(): static
{
    return new static();
}

            
unionAttributes() public method

Defined in: Yiisoft\Html\Tag\Base\Tag::unionAttributes()

Union attributes with a new set.

public Yiisoft\Html\Tag\Base\NormalTag unionAttributes ( array $attributes )
$attributes array

Name-value set of attributes.

                final public function unionAttributes(array $attributes): static
{
    $new = clone $this;
    $new->attributes += $attributes;
    return $new;
}