Я работал с такими фреймворками, как Cocoa для iOS, Qt (C++), и теперь я изучаю Laravel. Мой главный вопрос - о уникальном синтаксисе внутри фреймворков. Например, Laravel имеет свой уникальный синтаксис для операторов IF, который полностью отличается от того, который используется в PHP.Понимание того, как создаются рамки
Laravel
@if(condition)
@else
// code
@endif
PHP
if (condition)
{
//code
}
else
{
//code
}
Как дополнительный синтаксис будет добавлен в рамках? Это делается с помощью простого PHP или они модифицировали основной PHP-код, чтобы заставить его вести себя по-другому, чтобы он распознавал новый синтаксис?
Я думаю, более простой вопрос: люди, создающие фреймворки, должны иметь доступ к основному коду языка, или они просто работают с тем, что предлагает язык, и строят свои рамки вокруг этого?
Аналогичные thread, но не отвечает на мой вопрос.
Это язык шаблонов, и он не изменяет PHP, нет; он использует PHP для анализа шаблона и его рендеринга. Twig сделает это по-другому, и Smarty сделает это по-другому. Как создать механизм шаблонов и какие функции для сборки - это конструктивные решения, которые имеют простоту использования и компромисс производительности. – halfer
Технически, это не синтаксис Laravel, это синтаксис «лезвия» ... лезвие - это просто шаблонный движок (механизм шаблонов по умолчанию, который поставляется с Laravel), например 'twig' или' mustache' или 'smarty' –
Этот синтаксис используется только в ** шаблонах **, а не везде по всему Ларавелю. И эти шаблоны обрабатываются механизмом шаблонов, который анализирует файл в соответствии со своими собственными правилами. Core PHP на самом деле не имеет никакого отношения к этому. Вы спрашиваете, как строятся шаблоны для моделирования или настраиваемые парсеры. И для этого узнайте что-нибудь о парсерах. Это намного менее волшебный, чем вы можете себе представить. – deceze