Joomla CMS  3.8.5 (avec JPlatform 13.1 inclus)
Documentation des API du CMS Joomla en version 3.8.5 et du framework Joomla Platform intégré
Référence de la classe Parser

Fonctions membres publiques

 __construct ($offset=0, $totalNumberOfLines=null, array $skippedLineNumbers=array())
 
 parse ($value, $exceptionOnInvalidType=false, $objectSupport=false, $objectForMap=false)
 

Fonctions membres publiques statiques

static preg_match ($pattern, $subject, &$matches=null, $flags=0, $offset=0)
 

Champs de données

const BLOCK_SCALAR_HEADER_PATTERN = '(?P<separator>\||>)(?P<modifiers>\+|\-|\d+|\+\d+|\-\d+|\d+\+|\d+\-)?(?P<comments> +#.*)?'
 
const FOLDED_SCALAR_PATTERN = self::BLOCK_SCALAR_HEADER_PATTERN
 

Fonctions membres privées

 doParse ($value, $exceptionOnInvalidType=false, $objectSupport=false, $objectForMap=false)
 
 parseBlock ($offset, $yaml, $exceptionOnInvalidType, $objectSupport, $objectForMap)
 
 getRealCurrentLineNb ()
 
 getCurrentLineIndentation ()
 
 getNextEmbedBlock ($indentation=null, $inSequence=false)
 
 moveToNextLine ()
 
 moveToPreviousLine ()
 
 parseValue ($value, $exceptionOnInvalidType, $objectSupport, $objectForMap, $context)
 
 parseBlockScalar ($style, $chomping='', $indentation=0)
 
 isNextLineIndented ()
 
 isCurrentLineEmpty ()
 
 isCurrentLineBlank ()
 
 isCurrentLineComment ()
 
 isCurrentLineLastLineInDocument ()
 
 cleanup ($value)
 
 isNextLineUnIndentedCollection ()
 
 isStringUnIndentedCollectionItem ()
 
 isBlockScalarHeader ()
 

Attributs privés

 $offset = 0
 
 $totalNumberOfLines
 
 $lines = array()
 
 $currentLineNb = -1
 
 $currentLine = ''
 
 $refs = array()
 
 $skippedLineNumbers = array()
 
 $locallySkippedLineNumbers = array()
 

Description détaillée

Parser parses YAML strings to convert them to PHP arrays.

Auteur
Fabien Potencier fabie.nosp@m.n@sy.nosp@m.mfony.nosp@m..com

Documentation des constructeurs et destructeur

◆ __construct()

__construct (   $offset = 0,
  $totalNumberOfLines = null,
array  $skippedLineNumbers = array() 
)
Paramètres
int$offsetThe offset of YAML document (used for line numbers in error messages)
int | null$totalNumberOfLinesThe overall number of lines being parsed
int[]$skippedLineNumbers Number of comment lines that have been skipped by the parser

Références Parser\$offset, Parser\$skippedLineNumbers, et Parser\$totalNumberOfLines.

Documentation des fonctions membres

◆ cleanup()

cleanup (   $value)
private

Cleanups a YAML string to be parsed.

Paramètres
string$valueThe input YAML string
Renvoie
string A cleaned up YAML string

Références $count, et $value.

Référencé par Parser\doParse().

◆ doParse()

◆ getCurrentLineIndentation()

getCurrentLineIndentation ( )
private

Returns the current line indentation.

Renvoie
int The current line indentation

Référencé par Parser\doParse(), Parser\getNextEmbedBlock(), Parser\isNextLineIndented(), et Parser\isNextLineUnIndentedCollection().

◆ getNextEmbedBlock()

getNextEmbedBlock (   $indentation = null,
  $inSequence = false 
)
private

Returns the next embed block of YAML.

Paramètres
int$indentationThe indent level at which the block is to be read, or null for default
bool$inSequenceTrue if the enclosing data structure is a sequence
Renvoie
string A YAML string
Exceptions
ParseExceptionWhen indentation problem are detected

Références $data, $key, elseif, Parser\getCurrentLineIndentation(), Parser\getRealCurrentLineNb(), Parser\isBlockScalarHeader(), Parser\isCurrentLineBlank(), Parser\isCurrentLineComment(), Parser\isCurrentLineEmpty(), Parser\isStringUnIndentedCollectionItem(), Parser\moveToNextLine(), Parser\moveToPreviousLine(), et null.

Référencé par Parser\doParse().

◆ getRealCurrentLineNb()

getRealCurrentLineNb ( )
private

Returns the current line number (takes the offset into account).

Renvoie
int The current line number

Références Parser\$offset.

Référencé par Parser\doParse(), Parser\getNextEmbedBlock(), et Parser\parseValue().

◆ isBlockScalarHeader()

isBlockScalarHeader ( )
private

Tests whether or not the current line is the header of a block scalar.

Renvoie
bool

Référencé par Parser\getNextEmbedBlock().

◆ isCurrentLineBlank()

isCurrentLineBlank ( )
private

Returns true if the current line is blank.

Renvoie
bool Returns true if the current line is blank, false otherwise

Référencé par Parser\getNextEmbedBlock(), Parser\isCurrentLineEmpty(), et Parser\parseBlockScalar().

◆ isCurrentLineComment()

isCurrentLineComment ( )
private

Returns true if the current line is a comment line.

Renvoie
bool Returns true if the current line is a comment line, false otherwise

Référencé par Parser\getNextEmbedBlock(), et Parser\isCurrentLineEmpty().

◆ isCurrentLineEmpty()

isCurrentLineEmpty ( )
private

Returns true if the current line is blank or if it is a comment line.

Renvoie
bool Returns true if the current line is empty or if it is a comment line, false otherwise

Références Parser\isCurrentLineBlank(), et Parser\isCurrentLineComment().

Référencé par Parser\doParse(), Parser\getNextEmbedBlock(), Parser\isNextLineIndented(), et Parser\isNextLineUnIndentedCollection().

◆ isCurrentLineLastLineInDocument()

isCurrentLineLastLineInDocument ( )
private

Référencé par Parser\parseBlockScalar().

◆ isNextLineIndented()

isNextLineIndented ( )
private

Returns true if the next line is indented.

Renvoie
bool Returns true if the next line is indented, false otherwise

Références Parser\getCurrentLineIndentation(), Parser\isCurrentLineEmpty(), Parser\moveToNextLine(), et Parser\moveToPreviousLine().

Référencé par Parser\doParse().

◆ isNextLineUnIndentedCollection()

isNextLineUnIndentedCollection ( )
private

Returns true if the next line starts unindented collection.

Renvoie
bool Returns true if the next line starts unindented collection, false otherwise

Références Parser\getCurrentLineIndentation(), Parser\isCurrentLineEmpty(), Parser\isStringUnIndentedCollectionItem(), Parser\moveToNextLine(), et Parser\moveToPreviousLine().

Référencé par Parser\doParse().

◆ isStringUnIndentedCollectionItem()

isStringUnIndentedCollectionItem ( )
private

Returns true if the string is un-indented collection item.

Renvoie
bool Returns true if the string is un-indented collection item, false otherwise

Référencé par Parser\getNextEmbedBlock(), et Parser\isNextLineUnIndentedCollection().

◆ moveToNextLine()

moveToNextLine ( )
private

◆ moveToPreviousLine()

moveToPreviousLine ( )
private

Moves the parser to the previous line.

Renvoie
bool

Références Parser\$currentLineNb.

Référencé par Parser\getNextEmbedBlock(), Parser\isNextLineIndented(), Parser\isNextLineUnIndentedCollection(), et Parser\parseBlockScalar().

◆ parse()

parse (   $value,
  $exceptionOnInvalidType = false,
  $objectSupport = false,
  $objectForMap = false 
)

Parses a YAML string to a PHP value.

Paramètres
string$valueA YAML string
bool$exceptionOnInvalidTypeTrue if an exception must be thrown on invalid types (a PHP resource or object), false otherwise
bool$objectSupportTrue if object support is enabled, false otherwise
bool$objectForMapTrue if maps should return a stdClass instead of array()
Renvoie
mixed A PHP value
Exceptions
ParseExceptionIf the YAML is not valid

Références $data, $value, Parser\doParse(), null, et Parser\preg_match().

◆ parseBlock()

parseBlock (   $offset,
  $yaml,
  $exceptionOnInvalidType,
  $objectSupport,
  $objectForMap 
)
private

◆ parseBlockScalar()

parseBlockScalar (   $style,
  $chomping = '',
  $indentation = 0 
)
private

Parses a block scalar.

Paramètres
string$styleThe style indicator that was used to begin this block scalar (| or >)
string$chompingThe chomping indicator that was used to begin this block scalar (+ or -)
int$indentationThe indentation indicator that was used to begin this block scalar
Renvoie
string The text value

Références $i, $style, $text, elseif, Parser\isCurrentLineBlank(), Parser\isCurrentLineLastLineInDocument(), Parser\moveToNextLine(), et Parser\moveToPreviousLine().

Référencé par Parser\parseValue().

◆ parseValue()

parseValue (   $value,
  $exceptionOnInvalidType,
  $objectSupport,
  $objectForMap,
  $context 
)
private

Parses a YAML value.

Paramètres
string$valueA YAML value
bool$exceptionOnInvalidTypeTrue if an exception must be thrown on invalid types false otherwise
bool$objectSupportTrue if object support is enabled, false otherwise
bool$objectForMapTrue if maps should return a stdClass instead of array()
string$contextThe parser context (either sequence or mapping)
Renvoie
mixed A PHP value
Exceptions
ParseExceptionWhen reference does not exist

Références $context, $value, Parser\getRealCurrentLineNb(), Inline\parse(), Parser\parseBlockScalar(), ParseException\setParsedLine(), et ParseException\setSnippet().

Référencé par Parser\doParse().

◆ preg_match()

static preg_match (   $pattern,
  $subject,
$matches = null,
  $flags = 0,
  $offset = 0 
)
static

A local wrapper for preg_match which will throw a ParseException if there is an internal error in the PCRE engine.

This avoids us needing to check for "false" every time PCRE is used in the YAML engine

Exceptions
ParseExceptionon a PCRE internal error
Voir également
preg_last_error()

Références Parser\$offset, et $subject.

Référencé par Inline\dump(), Inline\evaluateScalar(), Parser\parse(), Inline\parseQuotedScalar(), et Inline\parseScalar().

Documentation des champs

◆ $currentLine

$currentLine = ''
private

◆ $currentLineNb

$currentLineNb = -1
private

◆ $lines

$lines = array()
private

◆ $locallySkippedLineNumbers

$locallySkippedLineNumbers = array()
private

◆ $offset

◆ $refs

$refs = array()
private

Référencé par Parser\parseBlock().

◆ $skippedLineNumbers

$skippedLineNumbers = array()
private

◆ $totalNumberOfLines

$totalNumberOfLines
private

◆ BLOCK_SCALAR_HEADER_PATTERN

const BLOCK_SCALAR_HEADER_PATTERN = '(?P<separator>\||>)(?P<modifiers>\+|\-|\d+|\+\d+|\-\d+|\d+\+|\d+\-)?(?P<comments> +#.*)?'

◆ FOLDED_SCALAR_PATTERN

const FOLDED_SCALAR_PATTERN = self::BLOCK_SCALAR_HEADER_PATTERN

La documentation de cette classe a été générée à partir du fichier suivant :