softrules / laravel
Laravel 实现的 SoftRules 用户界面
v0.2.12
2024-08-07 07:17 UTC
Requires
- php: ^8.1
- ext-dom: *
- ext-simplexml: *
- laravel/framework: ^10.0|^11.0
- softrules/php: ^0.2.12
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.17
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.24.0
- pestphp/pest: ^2.35
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.4
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^1.2
- phpstan/phpstan-phpunit: ^1.4
- rector/rector: ^1.2
- roave/security-advisories: dev-latest
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-cmd
和 post-update-cmd
以在运行 composer install
或 composer 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); }