CommonMark\CQL
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
CommonMark\CQL
Референца за `class.commonmark-cql.php` со подобрена типографија и навигација.
Класата CommonMark\CQL
(cmark >= 1.1.0)
Вовед
CommonMark Query Language е DSL за опишување како да се патува низ дрво од CommonMark Node, имплементирано како парсер и компајлер за мал сет на инструкции, и виртуелна машина за извршување на тие инструкции.
Патеки:
Во својата наједноставна форма, CQL прашањето ги комбинира следните патеки и / за да опише како да се патува низ дрво:
- firstChild
- lastChild
- previous
- next
- parent
/firstChild/lastChild би патувало до последниот подреден јазол од првиот подреден јазол.
Петелки
CQL може да биде инструиран да се повторува, на пример низ децата на, или браќата на одреден јазол, со користење на патеката children, или siblings. На пример, /firstChild/children ќе патува до сите деца на првиот подреден јазол.
Подпрашања
CQL може да биде инструиран како да патува со користење на подпрашање како [/firstChild]. На пример, /firstChild/children[/firstChild] ќе патува до првиот подреден јазол од сите деца на првиот подреден јазол.
Ограничувања на петелки
Додека се повторува, CQL може да биде инструиран да го ограничи патуваниот пат до јазли од одреден тип. На пример /children(BlockQuote) ќе патува до децата на јазол каде типот е BlockQuote. Следниве типови се препознаени (независно од големината на буквите):
- BlockQuote
- Листа
- Ставка
- CodeBlock
- HtmlBlock
- CustomBlock
- Пасус
- Наслов
- ThematicBreak
- Текст
- SoftBreak
- LineBreak
- Код
- HtmlInline
- CustomInline
- Нагласување
- Силен
- Врска
- Слика
/children(BlockQuote|List) ќе патува до децата на јазол каде типот е BlockQuote or List. Типовите, или унијата на типови, исто така може да бидат негирани. На пример /children(~BlockQuote) ќе патува до децата на јазол каде типот не е BlockQuoteПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во /children(~BlockQuote|Paragraph) ќе патува до децата на јазол каде типот не е BlockQuote or Paragraph
Ограничувања на патеката
CQL може да биде инструиран да создаде циклус за патување до јазол од одреден тип, на одредена патека. На пример, /firstChild(BlockQuote) ќе патува до првиот јазол-дете каде типот е BlockQuote. Забележете дека како и другите циклуси за children and siblings, овој вид патека може да биде следен само од подпрашање.
Белешки за имплементација
Иако CQL е имплементиран како дел од PHP CommonMark екстензијата, тој стои одделно од PHP и не користи виртуелна машина на PHP или внатрешна репрезентација на вредности.
Синопсис на класата
Содржина
- CommonMark\CQL::__construct — Изградба на CQL
- CommonMark\CQL::__invoke — Извршување на CQL