camspiers/reactjs-php-render

此包的最新版本(0.1.0)没有可用的许可证信息。

PHP渲染React

0.1.0 2014-07-20 21:48 UTC

This package is auto-updated.

Last update: 2024-09-19 14:04:05 UTC


README

此库旨在提供多种从PHP渲染React的选项。

实验性

API是实验性的,可能会发生变化。

概念

  • 渲染器(ReactJS\Renderer\RendererInterface
  • 此接口由多个渲染器实现,以提供不同的潜在渲染选项(HTTP服务器、V8Js等)
  • 运行时片段提供者(ReactJS\RuntimeFragmentProvider\ProviderInterface
  • 此接口用于提供不同的环境支持(CommonJS、全局变量等)

使用方法

可以直接使用渲染器生成“可挂载”的React HTML(包括校验和id),或者生成静态标记。

可以使用React类(ReactJS\React)生成可挂载的React HTML,以及将自动将浏览器React组件挂载到生成的服务器端渲染标记中的JavaScript。

Node

当使用Node进程时,用户需要提供适当的格式的源文件(s)以供Node执行,这些源文件(s)需要包含

  • React
  • 您要尝试渲染的组件
$node = ReactJS\ReactFactory::createUsingNode(
	'/usr/bin/nodejs',
	['bundle.js'] // bundle.js is a browserified bundle with React and TestComponent
);

echo $node->renderAutoMountingComponent('./TestComponent');

V8

当使用V8Js php扩展时,用户需要提供适当的格式的源文件(s)以供V8执行,这些源文件(s)需要包含

  • React
  • 您要尝试渲染的组件
$v8 = ReactJS\ReactFactory::createUsingV8(
	['bundle.js'] // bundle.js is a browserified bundle with React and TestComponent
);

echo $v8->renderAutoMountingComponent('./TestComponent');

结果

<div id="53998c3f85044">
	<span data-reactid=".fn8fq9jb40" data-react-checksum="2066486547">Some testing content</span>
</div>
<script>
	require('react').renderComponent(
		require(".\/TestComponent")(null),
		document.getElementById("53998c3f85044")
	)
</script>

安装(使用composer)

$ composer require camspiers/reactjs-php-render:dev-master