thenlabs / stratus-bundle
StratusPHP 对 Symfony 的集成。
Requires
- symfony/flex: ^1.11
- symfony/framework-bundle: >=4.4
- symfony/twig-bundle: >=4.4
- thenlabs/stratus-php: 1.0.x-dev
Requires (Dev)
- symfony/maker-bundle: ^1.28
- thenlabs/pyramidal-tests: ^1.1
This package is auto-updated.
Last update: 2024-09-25 02:51:50 UTC
README
通过整合StratusPHP,扩展 Symfony 到全栈开发。
注意:像StratusPHP一样,此项目也在开发中,不应在实际项目中使用。
安装。
指定开发版本安装 StratusPHP。
$ composer require thenlabs/stratus-php 1.0.x-dev
如果没有安装,请安装 maker bundle。
$ composer require symfony/maker-bundle --dev
安装此 bundle
$ composer require thenlabs/stratus-bundle dev-master
用法。
创建响应式页面。
安装完成后,我们可以创建将集成 StratusPHP 的应用程序页面。
要创建新页面,请运行以下命令
$ php bin/console make:stratus-page main
在此情况下,“main”指的是页面名称。
如你所见,创建了三个文件,一个模板,一个控制器和一个类。您可以审查这些文件并根据项目需求进行编辑。
在控制器类中,您可以设置页面路由。默认情况下,将是页面名称,例如此处的 /main
。
模板文件默认为空,但您应该用页面视图来编辑它。
在此示例中,我们将开发 StratusPHP 文档中的示例 2。
{# templates/main-stratus-page.html.twig #} {% extends 'base.html.twig' %} {% block body %} <input s-element="myInput" type="text"> <label s-element="myLabel"></label> <button s-element="myButton" s-element-event-click="clickOnTheButton">Greet</button> {% endblock %}
非常重要的是突出显示页面视图关键元素上的
s-element
属性及其值。
<?php // src/StratusPage/MainStratusPage.php namespace App\StratusPage; use ThenLabs\Bundle\StratusBundle\Annotation\StratusPage; use ThenLabs\Bundle\StratusBundle\AbstractPage; /** * @StratusPage(template="main-stratus-page.html.twig") */ class MainStratusPage extends AbstractPage { public function clickOnTheButton(): void { $this->myLabel->textContent = 'Hello ' . $this->myInput->value; } }
我们想强调的是 textContent
和 value
是在浏览器中实时管理的属性。理论上,可以管理任何属性类型并对任何事件做出反应。
如果您想了解 StratusPHP 的所有可能性,可以在其文档中的示例中查看。
测试结果。
$ symfony server:start
现在,如果我们访问 https://:8000/main/
,我们将获得以下结果。
在页面类中获取服务。
<?php // src/StratusPage/MainStratusPage.php // ... /** * @StratusPage(template="main-stratus-page.html.twig") */ class MainStratusPage extends AbstractPage { public function clickOnTheButton(): void { // getting the doctrine service. $doctrine = $this->controller->get('doctrine'); // ... } }
待定功能。
- 启用在页面类中自动注入服务的支持。
已知问题。
StratusPHP 最具代表性的特性之一是能够通过流向浏览器发送消息,这在示例 3中可以看到。必须牢记,此功能在用 Symfony 本地 Web 服务器(symfony server: start
)开发时会导致问题。相反,我们建议使用 PHP 的内部服务器,您可以通过命令 php -S localhost: 8000 -t public /
运行它。