Viewing file: CSSFunction.php (2.82 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Sabberworm\CSS\Value;
use Sabberworm\CSS\OutputFormat; use Sabberworm\CSS\Parsing\ParserState; use Sabberworm\CSS\Parsing\SourceException; use Sabberworm\CSS\Parsing\UnexpectedEOFException; use Sabberworm\CSS\Parsing\UnexpectedTokenException;
/** * A `CSSFunction` represents a special kind of value that also contains a function name and where the values are the * function’s arguments. It also handles equals-sign-separated argument lists like `filter: alpha(opacity=90);`. */ class CSSFunction extends ValueList { /** * @var string * * @internal since 8.8.0 */ protected $sName;
/** * @param string $sName * @param RuleValueList|array<int, RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string> $aArguments * @param string $sSeparator * @param int $iLineNo */ public function __construct($sName, $aArguments, $sSeparator = ',', $iLineNo = 0) { if ($aArguments instanceof RuleValueList) { $sSeparator = $aArguments->getListSeparator(); $aArguments = $aArguments->getListComponents(); } $this->sName = $sName; $this->iLineNo = $iLineNo; parent::__construct($aArguments, $sSeparator, $iLineNo); }
/** * @param ParserState $oParserState * @param bool $bIgnoreCase * * @return CSSFunction * * @throws SourceException * @throws UnexpectedEOFException * @throws UnexpectedTokenException * * @internal since V8.8.0 */ public static function parse(ParserState $oParserState, $bIgnoreCase = false) { $mResult = $oParserState->parseIdentifier($bIgnoreCase); $oParserState->consume('('); $aArguments = Value::parseValue($oParserState, ['=', ' ', ',']); $mResult = new CSSFunction($mResult, $aArguments, ',', $oParserState->currentLine()); $oParserState->consume(')'); return $mResult; }
/** * @return string */ public function getName() { return $this->sName; }
/** * @param string $sName * * @return void */ public function setName($sName) { $this->sName = $sName; }
/** * @return array<int, RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string> */ public function getArguments() { return $this->aComponents; }
/** * @return string * * @deprecated in V8.8.0, will be removed in V9.0.0. Use `render` instead. */ public function __toString() { return $this->render(new OutputFormat()); }
/** * @param OutputFormat|null $oOutputFormat * * @return string */ public function render($oOutputFormat) { $aArguments = parent::render($oOutputFormat); return "{$this->sName}({$aArguments})"; } }
|