owlycode/reactboard

快速灵活的 reactphp 控制台

安装: 21

依赖项: 0

建议者: 0

安全性: 0

星标: 7

关注者: 2

分支: 0

开放性问题: 0

类型:项目

0.1.0 2014-06-10 23:12 UTC

This package is auto-updated.

Last update: 2024-09-08 03:03:04 UTC


README

SensioLabsInsight

screenshot

这是什么?

ReactBoard 是一个基于 React、Ratchet 和 Symfony 组件的可扩展控制台。将其安装在服务器上,设置您希望的应用程序,然后插入一个屏幕!

您可以通过 HTTP API 实时与之交互。

入门

创建一个 composer.json

{
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "require": {
        "owlycode/reactboard": "~0.1"
    }
}

然后执行以下命令

composer install
cp vendor/owlycode/reactboard/app . -r
mv app/app.php.dist app/app.php

现在使用 php app/app.php 运行应用程序

在浏览 http://localhost:8080/home/landing 时,您应该看到欢迎页面。

尝试一下

以下应用程序包含在内:hello、prompt、twitter 和 vlc。

  • hello 是默认看到的,它基本上是一个 hello world。
  • prompt 将显示一条消息。
  • twitter 将显示一个来自特定标签的实时更新的推文列表。
  • vlc 将显示一个播放器(您的浏览器需要 VLC 插件),从指定的源进行流媒体传输。

您可以通过向 http://localhost:8080/home/command URL 发出调用来在应用程序之间切换。尝试以下命令并查看浏览器中发生了什么

curl "http://localhost:8080/home/command?app=prompt&message=Oh%20Hi!"

在运行此命令之前,您需要设置一个推特应用程序并将其凭据输入到 app/app.php 中

curl "http://localhost:8080/home/command?app=twitter&hashtag=symfony"

在运行此命令之前,请确保您已安装 vlc(在 Linux 和 Windows 上进行测试)。完成时不要忘记 killall vlc

vlc screen:// --screen-fps=20 --live-caching=10 --sout="#transcode{vcodec=mp2v,vb=256,fps=20,scale=Auto,acodec=none}:http{mux=raw,dst=:8081/}" -I dummy &
curl "http://localhost:8080/home/command?app=vlc&streamer=127.0.0.1:8081"

自定义主题

app/Resources/css 中创建自己的 CSS 文件,并在 app/app.php 中替换默认主题

$kernel->link(new ExternalAsset(__DIR__ . '/Resources', 'css/your-theme-file.css'));

创建自己的应用程序

src/MyNamespace/MyAppName 中创建以下文件

<?php
// src/MyNamespace/MyAppName/MyAppNameApplication.php

namespace MyNamespace\MyAppName;

use OwlyCode\ReactBoard\Application\AbstractApplication;
use OwlyCode\ReactBoard\Application\ApplicationInterface;

class MyAppNameApplication extends AbstractApplication implements ApplicationInterface
{
    /**
     * Called just before the socket server starts.
     */
    public function init()
    {
        $this->watch('my_app_name.request.index', function(){
            return $this->render('index.html.twig', array('status' => 'loaded'));
        });
    }

    public function getName()
    {
        return 'my_app_name';
    }
}
{# src/MyNamespace/MyAppName/views/index.html.twig #}

<h1>My application is {{ status }} ! :-)</h1>

然后在新创建的应用程序中注册 app/app.php

$kernel->register(new MyAppNameApplication());

现在您可以启动/重新启动 ReactBoard,打开浏览器并尝试: curl "http://localhost:8080/home/command?app=my_app_name"

进一步了解

ReactBoard 仍在早期开发中,并将提供更多文档。如果您有任何问题,请随时提出问题 :-)

同时,要了解如何进行更高级的操作,例如加载自己的资源或访问依赖注入机制,请查看 内置应用程序。Twitter 应用程序是最先进的,涵盖了 ReactBoard 可以做的一切:应用程序生命周期事件、实时更新、依赖注入使用、资源注册以及许多其他事情。