![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/syn.corals.io/vendor/spatie/html-element/src/ |
<?php namespace Spatie\HtmlElement; class Attributes { /** @var array */ protected $attributes = []; /** @var array */ protected $classes = []; public function __construct(array $attributes = []) { $this->setAttributes($attributes); } /** * @param array $attributes * * @return $this */ public function setAttributes(array $attributes) { foreach ($attributes as $attribute => $value) { if ($attribute === 'class') { $this->addClass($value); continue; } if (is_int($attribute)) { $attribute = $value; $value = ''; } $this->setAttribute($attribute, $value); } return $this; } /** * @param string $attribute * @param string $value * * @return $this */ public function setAttribute(string $attribute, string $value = '') { if ($attribute === 'class') { $this->addClass($value); return $this; } $this->attributes[$attribute] = $value; return $this; } /** * @param string|array $class * * @return $this */ public function addClass($class) { if (!is_array($class)) { $class = [$class]; } $this->classes = array_unique( array_merge($this->classes, $class) ); return $this; } public function isEmpty() : bool { return empty($this->attributes) && empty($this->classes); } public function toArray() : array { if (empty($this->classes)) { return $this->attributes; } return array_merge($this->attributes, ['class' => implode(' ', $this->classes)]); } public function toString() : string { if ($this->isEmpty()) { return ''; } $attributeStrings = []; foreach ($this->toArray() as $attribute => $value) { if (is_null($value) || $value === '') { $attributeStrings[] = $attribute; continue; } $value = htmlspecialchars($value, ENT_COMPAT); $attributeStrings[] = "{$attribute}=\"{$value}\""; } return implode(' ', $attributeStrings); } public function __toString() : string { return $this->toString(); } }