2017 © Pedro Peláez
 

library redux-react-ssr-bundle

image

polidog/redux-react-ssr-bundle

  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

PolidogReduxReactSsrBundle

PolidogReduxReactSsrBundle is a Koriym.ReduxReactSsr support Bundle for Symfony2 or 3, (*1)

Prerequisites

  • php7
  • V8Js
  • Symfony2 or Symfony3

Install

install polidog/redux-react-ssr-bundle with composer., (*2)

$ composer require polidog/redux-react-ssr-bundle "@dev"

Configuration

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Polidog\ReactJsBundle\PolidogReactJsBundle(),
        // ...
    );
}

Configure the paths to your react.js and components javascript files and default twig template:, (*3)

# app/config.yml

polidog_redux_react_ssr:
    react_lib_src: "%kernel.root_dir%/../web/js/react.bundle.js"
    react_app_src: "%kernel.root_dir%/../web/js/app.bundle.js"
    default_template: "::ssr.html.twig"

Usage

controller:, (*4)

<?php
...
    /**
     * @Route("/", name="ssr")
     * @ReactRender()
     *
     * @param Request $request
     * @return array
     */
    public function indexAction(Request  $request)
    {
        $state = ['hello'=> ['message' => 'Hello SSR !']];
        return [
            'state' => $state,
        ];
    }


twig:, (*5)

<!DOCTYPE html>
<html>
<head>
    <title>Hello CSR</title>
</head>
<body>
<div id="root">{{ markup|raw }}</div>
<script src="{{ asset('client/react.bundle.js') }}"></script>
<script src="{{ asset('client/app.bundle.js') }}"></script>
<script>
{{ js|raw }}
</script>
</body>
</html>

react-router

controller:, (*6)

<?php
...
    /**
     * @Route("/", name="ssr")
     * @ReactRender(router=true)
     *
     * @param Request $request
     * @return array
     */
    public function indexAction(Request  $request)
    {
        $state = ['hello'=> ['message' => 'Hello SSR !']];
        return [
            'state' => $state,
        ];
    }

Todo

  • test case

The Versions