Slim — это PHP-фреймворк, который помогает вам быстро создавать простые, но мощные веб-приложения и API. Twig — быстрый, безопасный и гибкий движок шаблонов PHP. Задача состоит в том, чтобы использовать эти два компонента и использовать Quasar Framework.
Вызов
Квазар использует фреймворк Vue. Это означает, что он использует {{
а также }}
так что вы можете, например, получить определенные параметры данных в макете. Тем не менее, веточка также использует этот синтаксис.
Ниже вы можете создать рабочую среду из всех трех.
это хранилище предоставит вам рабочую реализацию:
Он предназначен для объяснения того, как вы можете использовать три из них вместе, чтобы получить мощь SlimPHP для бэкэнда, безопасную гибкость Twig для шаблонов графического интерфейса PHP и обширную коллекцию компонентов Quasar для графического интерфейса.
Для этого репозитория у вас должен быть установлен как минимум PHP7 и composer. Чтобы запустить этот «сайт», клонируйте GIT-репозиторий. Затем перейдите в базовый каталог и выполните команду composer install
, Это создаст папку «Vender». Когда это будет сделано, вы можете запустить встроенный PHP-сервер с php -S localhost:8080 -t public
, Откройте браузер и перейдите по этому URL, чтобы просмотреть результат.
Я не собираюсь объяснять установку SlimPHP. Вместо этого я указываю на документацию, найденную онлайн Вот. В репозитории этого объяснения вы найдете более основанную на MVC структуру (без интеграции с базой данных). Короче говоря, это то, что происходит, когда вы открываете URL http://localhost:8080/index.php
, Это не может быть программно правильным, но работает для объяснения.
..\config\routes.php
говорит идти controllerHome
..\config\dependencies.php
внизу есть определение controllerHome
который проходит view
а также logger
к классу HomeController
в пространстве имен Sample\Controllers
composer.json
говорит, что Sample
файлы приложений находятся в ..\src\Sample
, так что класс контроллера находится в ..\src\Sample\Controlles
в файле с именем HomeController.php
Выше было объяснено, куда идет URL. Следующим шагом является то, что шаблон от Twig вызывается для отображения чего-либо. Установка Twig описана в документации SlimPHP. Документацию по Twig можно найти Вот. Следующие шаги сделаны, продолжая, где мы оставили, чтобы отобразить что-то.
invoke
функция. Это вызывает render
для шаблона ветки и передает ответ, имя шаблона и, при желании, некоторые параметры..\src\Sample\Views
в соответствии с файлом ..\config\bootstrap.php
где каталог определен. Это определение используется в ..\config\dependencies.php
..\src\Sample\Views\home\main.twig
есть линия {% extends 'layout.twig' %}
Это означает, что этот файл включен в ..\src\Sample\Views\layout.twig
, Если вы посмотрите внимательно, вы увидите, что он добавлен в место, помеченное как {% block blMainContent %}{% endblock %}
{{ strMessage }}
в этом файле заменяется содержимым переменной ‘strMessage’, которая передается в шаблонНаконец, Quasar используется для графического интерфейса. Этот образец на самом деле не показывает какого-либо хорошего стиля и тому подобного, но всю документацию по компонентам можно найти Вот. Этот репозиторий использует реализацию CDN. Это описано в документации Quasar тоже по этому страница. Одним словом, это то, что сделано.
..\src\Sample\Views\layout.twig
ссылка добавлена в набор иконок..\src\Sample\Views\layout.twig
ссылка добавлена анимации..\src\Sample\Views\layout.twig
ссылка добавлена в квазар CSS (в данном случае MAT)..\src\Sample\Views\layout.twig
ссылка добавлена в vue (в теле!)..\src\Sample\Views\layout.twig
ссылка добавлена в квазар (в теле, после vue!)Эти шаги позволяют использовать квазар. Если вы сделаете только это, вы получите стиль, но не объекты. Так что вам нужно запустить квазар и vue, что здесь делается с этим кодом.
<div id='q-app'>
<q-layout>
<q-layout-header>
header
</q-layout-header>
<q-page-container>
{% block blMainContent %}{% endblock %}
</q-page-content>
<q-layout-footer>
footer
</q-layout-container>
</q-layout>
</div>
<script>
new Vue({
el: '#q-app',
delimiters: ['[[', ']]'],
data: function () {
return {}
},
methods: {}
})
</script>
Теперь магия начинает завершать реализацию, так что свойство данных strMessage2
найдено в main.twig
также может быть использован. Как упоминалось ранее, Vue также использует {{
а также }}
так что это проблема. Чтобы обойти это, в определении Vue, показанном выше, добавлена строка. delimiters: ['[[', ']]']
говорит Vue использовать [[
а также ]]
вместо этого, так это то, что вы видите в main.twig
,
Других решений пока нет …