thenlabs/stratus-bundle

StratusPHP 对 Symfony 的集成。

安装: 14

依赖项: 0

建议者: 0

安全: 0

星星: 2

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

dev-master 2021-07-24 19:40 UTC

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;
    }
}

我们想强调的是 textContentvalue 是在浏览器中实时管理的属性。理论上,可以管理任何属性类型并对任何事件做出反应。

如果您想了解 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');

        // ...
    }
}

待定功能。

  1. 启用在页面类中自动注入服务的支持。

已知问题。

StratusPHP 最具代表性的特性之一是能够通过流向浏览器发送消息,这在示例 3中可以看到。必须牢记,此功能在用 Symfony 本地 Web 服务器(symfony server: start)开发时会导致问题。相反,我们建议使用 PHP 的内部服务器,您可以通过命令 php -S localhost: 8000 -t public / 运行它。