定制 quellabs/canvas-loom 二次开发

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

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

quellabs/canvas-loom

Composer 安装命令:

composer require quellabs/canvas-loom

包简介

Definition-driven page builder for Canvas that turns PHP builder definitions into data-bound admin interfaces.

README 文档

README

A definition-driven page builder for Canvas that turns structured PHP definitions into interactive admin pages — forms, settings panels, editors — with automatic data binding and WakaPAC initialisation.

Installation

composer require quellabs/canvas-loom

Quick Start

use Quellabs\Canvas\Loom\Loom;
use Quellabs\Canvas\Loom\Builder\Resource;
use Quellabs\Canvas\Loom\Builder\Section;
use Quellabs\Canvas\Loom\Builder\Field;

$definition = Resource::make('post-form', '/admin/posts/save')
    ->title('Edit Post')
    ->add(Section::make()
        ->add(Field::text('title', 'Title')->required())
        ->add(Field::textarea('body', 'Content')->rows(10))
    )
    ->build();

$loom = new Loom();
echo $loom->render($definition, [
    'title' => 'My First Post',
    'body'  => 'Hello world.',
]);

How It Works

You build a node tree using fluent PHP builders. Loom::render() walks the tree, delegates each node to a renderer, and emits HTML with the appropriate WakaPAC initialisation scripts. Entity data passed to render() is automatically distributed to field values via DOM hydration.

Node Types

Node Purpose
Resource Page root — renders a <form> with header, title, save/cancel
Section Visual grouping without WakaPAC init
Tabs / Tab Tabbed interface managed by WakaPAC
Panel Reactive WakaPAC container without tabs
Columns / Column Flex layout with percentage widths
Field Input with label, validation, and data binding
Text Read-only label/value pair, supports interpolation
Button Action trigger bound to WakaPAC expressions

Fields

Field::text('title', 'Title')->required()->maxlength(200)
Field::textarea('body', 'Content')->rows(10)
Field::select('status', 'Status')->options(['draft' => 'Draft', 'published' => 'Published'])
Field::checkbox('featured', 'Featured post')
Field::number('priority', 'Priority')->min(1)->max(10)

Dependent dropdowns are supported via ->dependsOn('parent_field'). Dependent fields must be direct siblings within the same Column or Section.

Buttons

Buttons execute WakaPAC expressions via ->action(). Three variants: primary (default), ->secondary(), ->danger().

Button::make('Save')->action('submit()')
Button::make('Publish')->action("post('/admin/posts/publish')")
Button::make('Delete')->danger()->action("Stdlib.sendMessage('post-form', MSG_DELETE, 0, 0)")

Every container exposes submit() and post(url) on its WakaPAC abstraction automatically.

Abstraction

Named message constants and other non-reactive properties can be added to a container's WakaPAC abstraction. Underscore-prefixed keys are non-reactive.

Resource::make('post-form', '/admin/posts/save')
    ->abstraction([
        '_MSG_SHOW_DELETE' => 1001,
        '_MSG_HIDE_DELETE' => 1002,
    ]);

Notifications

$loom = new Loom();
$loom->notification('success', 'Post saved.');
$loom->notification('error', 'Title is required.');
echo $loom->render($definition, $data);

Types: success, error, warning, info.

Custom Renderers

Extend AbstractRenderer, implement RendererInterface, and register on the Loom instance:

$loom = new Loom();
$loom->register('field', MapFieldRenderer::class);
echo $loom->render($definition, $data);

To override only specific nodes within a type, check the node properties and delegate to the default renderer for everything else.

quellabs/canvas-loom 适用场景与选型建议

quellabs/canvas-loom 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 04 月 14 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「admin」 「php」 「admin-panel」 「canvas」 「form-builder」 「loom」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 quellabs/canvas-loom 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 quellabs/canvas-loom 我们能提供哪些服务?
定制开发 / 二次开发

基于 quellabs/canvas-loom 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-14