定制 nssivanitesh/react-ubiquitous-composer 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

nssivanitesh/react-ubiquitous-composer

Composer 安装命令:

composer require nssivanitesh/react-ubiquitous-composer

包简介

Laravel Composer package providing standardized DTOs and helper functions for the react-ubiquitous UI Config API

README 文档

README

PHP Version License

Laravel/PHP Composer package providing standardized DTOs and helper functions for the react-ubiquitous UI Config API.

The backend produces a UIStageConfig JSON tree; the react-ubiquitous frontend renders it without any code changes.

Requirements

  • PHP 8.1+
  • Composer

Installation

composer require nssivanitesh/react-ubiquitous-composer

If you are using Laravel, the ReactUbiquitousServiceProvider is auto-discovered via the extra.laravel section of composer.json.

Core Concepts

The JSON object hierarchy is:

UIStageConfig
 └─ UIPageConfig[]
     └─ UISectionConfig[]   (flex | grid | hero | table | chart | …)
         └─ UIElementConfig[]  (input | select | button | …)

Every class implements toArray() which returns the exact JSON shape expected by the frontend.

Quick Start

use ReactUbiquitous\Helpers\UIHelper;
use ReactUbiquitous\DTOs\Sections\FlexSectionConfig;
use ReactUbiquitous\DTOs\Sections\TableSectionConfig;
use ReactUbiquitous\DTOs\Elements\InputElementConfig;
use ReactUbiquitous\DTOs\Elements\ButtonElementConfig;
use ReactUbiquitous\DTOs\Supporting\TableColumn;
use ReactUbiquitous\Enums\UITheme;

// Build a stage with one page containing a flex section
$stage = UIHelper::stage('my-app')
    ->title('My Application')
    ->theme(UITheme::Light)
    ->addPage(
        UIHelper::page('home', 'Home', 1)
            ->addSection(new FlexSectionConfig(
                id: 'search-bar',
                elements: [
                    new InputElementConfig(
                        id: 'q',
                        name: 'q',
                        inputType: 'text',
                        placeholder: 'Search…',
                        label: 'Search',
                    ),
                    new ButtonElementConfig(
                        id: 'btn-search',
                        name: 'btn-search',
                        text: 'Search',
                        buttonType: 'submit',
                    ),
                ],
                gap: '1rem',
            ))
            ->build()
    )
    ->build();

// Serialize to JSON
return response()->json($stage->toArray());

Validation Builder

use ReactUbiquitous\Helpers\UIHelper;
use ReactUbiquitous\DTOs\Elements\InputElementConfig;

$validations = UIHelper::validation()
    ->required()
    ->email('Please enter a valid email address.')
    ->build();

$emailField = new InputElementConfig(
    id: 'email',
    name: 'email',
    inputType: 'email',
    label: 'Email',
    validations: $validations,
);

DTOs Reference

Namespace Classes
ReactUbiquitous\DTOs UIStageConfig, UIPageConfig
ReactUbiquitous\DTOs\Sections FlexSectionConfig, GridSectionConfig, HeroSectionConfig, CardSectionConfig, TableSectionConfig, ChartSectionConfig, IframeSectionConfig, AlertSectionConfig, ModalSectionConfig, DrawerSectionConfig, ToastSectionConfig, ProgressSectionConfig, SkeletonSectionConfig, AccordionSectionConfig, TabsSectionConfig, StepperSectionConfig, PaginationSectionConfig, NavbarSectionConfig, SidebarSectionConfig, BreadcrumbsSectionConfig, TooltipSectionConfig, PopoverSectionConfig, CollapseSectionConfig, DividerSectionConfig, BadgeSectionConfig, AvatarSectionConfig, TimelineSectionConfig, StatSectionConfig, EmptyStateSectionConfig, CodeBlockSectionConfig, MediaSectionConfig, ListDetailSectionConfig, TreeViewSectionConfig, ChatSectionConfig
ReactUbiquitous\DTOs\Elements InputElementConfig, CheckboxElementConfig, RadioElementConfig, TextareaElementConfig, SelectElementConfig, ButtonElementConfig, LabelElementConfig, FieldsetElementConfig, DatalistElementConfig, OutputElementConfig, DatePickerElementConfig, MultiSelectElementConfig, AutocompleteElementConfig, FileUploadElementConfig, ColorPickerElementConfig, RangeSliderElementConfig, RatingElementConfig, OtpInputElementConfig, PhoneInputElementConfig, CustomElementConfig
ReactUbiquitous\DTOs\Supporting RadioOption, SelectOption, SelectOptGroup, PhoneCountryOption, NavLink, SidebarItem, BreadcrumbItem, StepperStep, TabItem, AccordionPanel, ListDetailItem, ListEndpointConfig, FilterEndpointConfig, DetailEndpointConfig, DetailPage, TreeViewNode, MediaItem, TableColumn, BadgeItem, AvatarItem, TimelineEvent, StatItem, ChatMessage, ChatConversation, ChartDataPoint, ChartSeries
ReactUbiquitous\DTOs\Validation ValidationRule
ReactUbiquitous\Enums UITheme, UIPageTransition, InputType, ResizeBehaviour, ButtonVariant, ButtonSize
ReactUbiquitous\Builders StageBuilder, PageBuilder, ValidationBuilder
ReactUbiquitous\Helpers UIHelper

Testing

composer install
./vendor/bin/phpunit

Local Development with Laravel Sail

This package ships with a Docker Compose configuration that gives you a PHP 8.2 environment without needing PHP installed on your host machine — similar to how Laravel Sail works for full Laravel applications.

Prerequisites

First-time setup

# Build the image and install Composer dependencies
docker compose build
docker compose run --rm php composer install

Running tests

docker compose run --rm php ./vendor/bin/phpunit

Opening an interactive shell

docker compose run --rm php bash

Running any Composer command

docker compose run --rm php composer <command>

Changelog

See CHANGELOG.md.

License

MIT — see LICENSE.

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-02-28

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固