plansys/yard

在PHP中编写ReactJS组件!

0.0.5 2017-08-23 10:06 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:10:15 UTC


README

Yard:PHP中的ReactJS组件

此库允许您在PHP类中编写ReactJS组件。

它通过根据PHP生成的javascript动态创建React组件来实现。

纯PHP安装

您可以使用composer安装Yard

composer require plansys\yard

按照以下步骤使用yard

  1. 创建 my-project 目录
  2. 打开终端并在该目录下执行 composer require plansys\yard
  3. my-project 目录中创建 pagestmpredux 目录
  4. 确保 /tmp 目录可被Web服务器进程写入(在该目录中执行 chmod 755
  5. 创建 base.phpindex.php 文件

完成这些步骤后,您的目录结构应如下所示

my-project
  ├─ tmp         (writable)
  ├─ pages 
  ├─ redux 
  └─ vendors
     ├─ ...
     └─ yard
        ├─ base    (copy to /bases/default)
        ├─ src
        └─ ...
     └─ ...
  └─ base.php        
  └─ index.php   

将此代码放入 base.php 文件

<?php

$host = str_replace("index.php", "", strtok($_SERVER["REQUEST_URI"], '?'));
return [
   'name' => 'PLANSYS',
   'offline' => false,
   'settings' => null,
   'host' => $host,
   'modules' => [
       '' => [
           'dir'=> dirname(__FILE__) . '/pages',
           'url' => $host . '/pages',
           'redux' => dirname(__FILE__) . '/redux'
       ]
   ],
   'dir' => [
       'dir'=> dirname(__FILE__) . '/pages',
       'base' => dirname(__FILE__) . '/vendor/plansys/yard/base/build',
       'cache' => dirname(__FILE__) . '/tmp',
       'root' => dirname(__FILE__) 
   ],
   'url' => [
       'base' => $host . '/vendor/plansys/yard/base/build',
       'cache' => $host . '/tmp/[file]',
       'page' => $host . '/index.php?p=[page]',
   ]
];

将此代码放入 index.php 文件

<?php

require("vendor/autoload.php");

$base = new \Yard\Base(dirname(__FILE__) . DIRECTORY_SEPARATOR . "base.php");
$yard = new \Yard\Renderer($base);

$parr = explode('...', @$_GET['p']);
$modearr = count($parr) > 1 ? explode(".", $parr[1]) : [''];
$mode = count($modearr) > 1 ? $modearr[1] : $modearr[0];

if ($mode == 'css') {
   header('Content-type: text/css');
} else if (in_array($mode, ['js', 'jsdev', 'sw'])) {
   header('Content-type: text/javascript');
}
$page = isset($_GET['p']) ? $_GET['p'] : 'builder:Index';
echo $yard->render($page);

然后在浏览器中打开 index.php

图标由 Freepikwww.flaticon.com 上创建,并受 CC 3.0 BY 许可