varyan/php-based-react-backend-rendering

PHP基于composer的包,用于在后台进行React渲染

dev-master 2017-01-22 10:51 UTC

This package is auto-updated.

Last update: 2024-09-16 08:03:50 UTC


README

Travis CI构建状态

Build status

安装前

在运行composer之前,请确保您已安装V8Js PHP扩展

您可以在以下链接中找到如何安装V8Js扩展...

安装

  • composer require varyan/php-based-react-backend-rendering dev-master

需求

  • php至少5.6.24
  • reactjs/react-php-v8js

使用方法

  • 将vendor/varyan/php-based-react-backend-rendering示例文件夹中的文件和文件夹复制到您的根目录中
    • 在包含index.php文件的文件夹内创建build文件夹
    • 打开package.json文件
      • 如果您的index.php文件位于不同的文件夹中,而不是根目录
        • 将build/react-build.min.js改为'index.php所在文件夹'/build/react-bundle.min.js
        • 将build/app.js改为'index.php所在文件夹'/build/app.js
    • 在终端运行
      • npm i && npm run make

对于MVC系统如...

  • Codeigniter

    • 文件application/config/config.php
        //Add following lines
        
        \VarYans\ReactPHP\Config::setReactSource('path-to/build/react-bundle.min.js');
        \VarYans\ReactPHP\Config::setAppSource('path-to/build/app.js');
        
        //optional you can add error handler for custom error catching
        \VarYans\ReactPHP\Config::setErrorHandler(function(\V8JsException $exception){
            // code coming here
        });
    
    • 文件application/config/route.php
        //Add following line in your routes list
        
        $route['home/hello'] = "HomeController/Hello";
    
    
    • 文件application/controllers/HomeController.php
        <?php
        
        use VarYans\ReactPHP\React;
    
        class HomeController extends CI_Controller{
        
            /**
            * @return void
            */
            public function hello(){
                echo React::quickRender("Hello",[
                    "name" => "User"
                ]);
            }
            
             /**
             * if you want to use react component as part of your view 
             * you can write it like this
             * @return \View
             */           
            public function bye(){
                $this->load->view("bye",[
                    "var1"=>"val1",
                    "componentAbout"=>React::quickRender("Bye",[
                        "prop1"=>"val1"
                    ])                    
                ]);
            }
        }
    
  • Laravel 5.3(提到版本是因为Laravel在不同版本中文件夹结构不同)

    • 文件bootstrap/app.php
        //Add following lines
        
        \VarYans\ReactPHP\Config::setReactSource('path-to/build/react-bundle.min.js');
        \VarYans\ReactPHP\Config::setAppSource('path-to/build/app.js');
        
        //optional you can add error handler for custom error catching
        \VarYans\ReactPHP\Config::setErrorHandler(function(\V8JsException $exception){
            // code coming here
        });
    
    • 文件routes/web.php
        Route::get('/home/hello','HomeController@hello');
        Route::get('/home/bye','HomeController@bye');
    
    • 文件app/Http/Controllers/HomeController.php
        <?php
        
        namespace App\Http\Controllers;
        
        use VarYans\ReactPHP\React;
    
        class HomeController extends Controller{
        
            /**
            * @return string
            */
            public function hello(){
                return React::quickRender("Hello",[
                    "name" => "User"
                ]);
            }
            
            /**
            * if you want to use react component as part of your view 
            * you can write it like this
            * @return \View
            */
            public function bye(){
                return view('bye',[
                    "var1"=>"val1",
                    "componentAbout"=>React::quickRender("Bye",[
                        "prop1"=>"val1"
                    ])
                ]);
            } 
        }        
    

版本控制

目前您只能使用dev-master版本

作者

  • Varazdat Stepanyan

许可

本项目采用MIT许可协议 - 请参阅LICENSE.md文件以获取详细信息