SectionParser
This class parses CMS object files (pages, partials and layouts).
class Winter\Storm\Halcyon\Processors\SectionParser
Returns the structured file information.
Constants
Constant | Type | Value | Description |
---|---|---|---|
ERROR_INI
|
string |
"_PARSER_ERROR_INI"
|
string
"_PARSER_ERROR_INI"
|
SECTION_SEPARATOR
|
string |
"=="
|
string
"=="
|
Methods
public
static
parse (string $content, array $options = []
)
: array
Parses Halcyon section content.
The expected file format is following:
INI settings section
==
PHP code section
==
Twig markup section
If the content has only 2 sections they are parsed as settings and markup. If there is only a single section, it is parsed as markup.
Returns an array with the following elements: (array|null) 'settings', (string|null) 'markup', (string|null) 'code'.
Property | Type | Description |
---|---|---|
$content | string |
string
|
$options | array |
array
|
public static parseCode (string $code) : string
Processes the Code section into a usable form
Property | Type | Description |
---|---|---|
$code | string |
string
|
public static parseMarkup (string $markup) : string
Processes the Markup section into a usable form
Property | Type | Description |
---|---|---|
$markup | string |
string
|
public static parseOffset (string $content) : array
Same as parse method, except the line number where the respective section begins is returned.
Returns an array with the following elements: (integer|null) 'settings', (integer|null) 'markup', (integer|null) 'code'.
Property | Type | Description |
---|---|---|
$content | string |
string
|
public static parseSettings (string $settings) : array
Parses the Settings section into an array
Property | Type | Description |
---|---|---|
$settings | string |
string
|
public
static
render (array $data, array $options = []
)
: string
Renders a CMS object as file content.
Property | Type | Description |
---|---|---|
$data | array |
array
|
$options | array |
array
|
public
static
renderCode (string $code, array $options = []
)
: string
Renders the provided string into a string that can be stored in the Code section
Property | Type | Description |
---|---|---|
$code | string |
string
|
$options | array |
array
|
public static renderMarkup (string $markup) : string
Renders the provided string into a string that can be stored in the Markup section
Property | Type | Description |
---|---|---|
$markup | string |
string
|
public static renderSettings (array $data) : string
Renders the provided settings data into a string that can be stored in the Settings section
Property | Type | Description |
---|---|---|
$data | array |
array
|
protected
static
adjustLinePosition (string $content, integer $startLine = -1
)
: integer
Pushes the starting line number forward since it is not always directly after the separator (==). There can be an opening tag or white space in between where the section really begins.
Property | Type | Description |
---|---|---|
$content | string |
string
|
$startLine | integer |
integer
|
protected
static
calculateLinePosition (string $content, integer $instance = 1
)
: integer | null
Returns the line number of a found instance of CMS object section separator (==).
Property | Type | Description |
---|---|---|
$content | string |
string
Object content |
$instance | integer |
integer
Which instance to look for |
The line number the instance was found.
protected
static
parseIntoSections (string $content, integer $limit = 3
)
: array
Parse the provided content into sections
Property | Type | Description |
---|---|---|
$content | string |
string
|
$limit | integer |
integer
|