softrules/laravel

Laravel 实现的 SoftRules 用户界面

v0.2.12 2024-08-07 07:17 UTC

This package is auto-updated.

Last update: 2024-09-07 07:34:38 UTC


README

Laravel 实现的 SoftRules 用户界面

安装

您可以通过 composer 安装此软件包

composer require softrules/laravel

发布资产和配置

要发布资产和配置文件,请运行以下命令

php artisan vendor:publish --tag=softrules-assets

这会将资产发布到 public/vendor/softrules 目录,并将配置文件发布到 config/softrules.php 目录。

在配置文件中可以放置您想要在应用程序中开始使用的表单的 SoftRules 凭据。

配置设置

您可以通过在 config/softrules.php 文件中的 forms 数组中添加条目来添加您喜欢的任何数量的表单。

<?php declare(strict_types=1);

return [
    'forms' => [
        [
            'product' => 'testpagina',
            'uri' => env('SOFTRULES_MYTP_TESTPAGINA_URI'),
            'username' => env('SOFTRULES_MYTP_TESTPAGINA_USERNAME'),
            'password' => env('SOFTRULES_MYTP_TESTPAGINA_PASSWORD'),
        ],
        [
            'product' => 'volmachtproducten',
            'uri' => env('SOFTRULES_VOLMACHTPRODUCTEN_URI'),
            'username' => env('SOFTRULES_VOLMACHTPRODUCTEN_USERNAME'),
            'password' => env('SOFTRULES_VOLMACHTPRODUCTEN_PASSWORD'),
        ],
    ],
];

保持资产更新

将以下内容添加到 composer 脚本 post-install-cmdpost-update-cmd 以在运行 composer installcomposer update 后保持资产更新

"@php artisan vendor:publish --force --tag=softrules-assets --ansi"

例如

"scripts": {
    "post-install-cmd": [
        //... default scripts
        "@php artisan vendor:publish --force --tag=softrules-assets --ansi"
    ],
    "post-update-cmd": [
        //... default scripts
        "@php artisan vendor:publish --force --tag=softrules-assets --ansi"
    ]
},

用法

config/softrules.php 文件中设置配置后,您可以在应用程序中使用 SoftRules 表单。

简单地将表单添加到您想要使用 SoftRules 表单的 blade 文件中

{{ \SoftRules\Laravel\Facades\SoftRules::form('softrules-form-name', '<SR></SR>') }}

定制

覆盖 SoftRules 组件类

SoftRules 中的每个组件都可以通过覆盖类或通过在 ServiceProvider 中添加内联样式进行定制

use SoftRules\PHP\UI\Components\Button;
use SoftRules\PHP\UI\Style\ButtonComponentStyle;
use SoftRules\PHP\UI\Style\StyleData;

Button::setStyle(new ButtonComponentStyle(
    default: new StyleData(class: 'btn btn-default'),
    primary: new StyleData(class: 'btn btn-primary'),
    success: new StyleData(class: 'btn btn-success'),
    danger: new StyleData(class: 'btn btn-danger'),
));

例如

<?php declare(strict_types=1);

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use SoftRules\PHP\UI\Components\Button;
use SoftRules\PHP\UI\Style\ButtonComponentStyle;
use SoftRules\PHP\UI\Style\StyleData;

final class AppServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
        Button::setStyle(new ButtonComponentStyle(
            default: new StyleData(class: 'btn btn-default'),
            primary: new StyleData(class: 'btn btn-primary'),
            success: new StyleData(class: 'btn btn-success'),
            danger: new StyleData(class: 'btn btn-danger'),
        ));
    }
}

添加内联样式

use SoftRules\PHP\UI\Components\Button;
use SoftRules\PHP\UI\Style\ButtonComponentStyle;
use SoftRules\PHP\UI\Style\StyleData;

Button::setStyle(new ButtonComponentStyle(
    default: new StyleData(inlineStyle: 'background-color: #f00; color: #fff;'),
    primary: new StyleData(inlineStyle: 'background-color: blue; color: #fff;'),
    success: new StyleData(inlineStyle: 'background-color: green; color: #fff;'),
    danger: new StyleData(inlineStyle: 'background-color: red; color: #fff;'),
));

使用 TailWind CSS

use SoftRules\PHP\UI\Components\Button;
use SoftRules\PHP\UI\Style\ButtonComponentStyle;
use SoftRules\PHP\UI\Style\StyleData;

Button::setStyle(new ButtonComponentStyle(
    default: new StyleData(class: 'bg-gray-300 text-gray-800'),
    primary: new StyleData(class: 'bg-blue-500 text-white'),
    success: new StyleData(class: 'bg-green-500 text-white'),
    danger: new StyleData(class: 'bg-red-500 text-white'),
));

定制全局颜色

您可以使用 CSS 变量来定制 SoftRules 表单的全局颜色。

#softrules-form {
    --sr-primary-color: var(--primary-color);
    --sr-secondary-color: var(--secondary-color);
}