axn / laravel-stepper
分步辅助Laravel 5。
Requires
- illuminate/support: ~5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0
README
允许您逐步创建进度可视化工具的包。
- 作者: AXN Informatique
- 网站: http://www.axn-informatique.com/
- 许可证: MIT许可证(见许可证文件)
安装
要将Laravel Stepper作为Composer包安装并用于Laravel 5,请运行以下命令:
composer require axn/laravel-stepper
安装完成后,该包将通过Artisan命令 package:discover(Laravel >=5.5)自动注册。如果没有,您必须在config/app.php的providers部分中手动注册服务提供者,添加以下行:
'Axn\LaravelStepper\ServiceProvider',
使用
Stepper将被用于多个页面。一个应用程序可能有多个Stepper,因此必须在专用类中定义Stepper。
use Axn\LaravelStepper\Stepper; class BasicStepper extends Stepper { public function register() { $this->addStep('step 1'); $this->addStep('step 2'); $this->addStep('step 3'); $this->addStep('step 4'); $this->addStep('step 5'); } }
该类的重要之处在于:
- 它扩展了抽象类:
Axn\LaravelStepper\Stepper - 它实现了
register()方法 - 在该方法中,定义了所有不同的步骤
然后,我们可以将此类注入到控制器的方法中
//... public function index(BasicStepper $stepper) { $stepper->setCurrentStepName('step 3'); return $this->view('example-view', [ 'stepper' => $stepper->render() ]); } //...
由于该类是通过IoC容器注入的,因此它会被实例化,并且会自动调用register()方法。之后,必须明确告诉Stepper当前是哪个步骤:$stepper->setCurrentStepName('step 3')。然后,Stepper的渲染将被传递到视图中,您可以在其中简单地放置:{!! $stepper !!}。
自定义模板
更改模板
此包提供了一些模板。默认情况下,使用“default”模板。要使用“arrows”模板,您需要向Stepper类中添加要使用的模板名称
use Axn\LaravelStepper\Stepper; class BasicStepper extends Stepper { protected $view = 'stepper::arrows'; //... }
就这样!
当然,以非常传统的方式,您可以使用模板系统的任何视图。例如,要使用模板resources/views/partials/steppers/custom.blade.php,请将以下代码放入您的类中
use Axn\LaravelStepper\Stepper; class BasicStepper extends Stepper { protected $view = 'partials.steppers.custom'; //... }
自定义模板
所有提供的模板都是理解如何使用该包的示例,而不是用于生产的模板。例如,模板中嵌入CSS样式,这不是一个好的做法。
可以从包中提供的模板之一开始,并对其进行修改。为此,您必须发布模板,然后编辑它们。
要发布所有模板,请使用以下命令
php artisan vendor:publish
完成此步骤后,您将在resources/views/vendor/stepper/中找到所有模板。根据您的需求,将非常容易地编辑它们。
模板中的方法
为了个性化您的模板,有几种方法可供使用。以下是列表
Stepper类
{{ $stepper->getStep($stepName) }} 根据步骤名称返回一个步骤,实例化StepInterface
{{ $stepper->getCurrentStep($stepName) }} 返回当前步骤的实例
{{ $stepper->getPrevStep($stepName) }} 返回上一个步骤的实例
{{ $stepper->getNextStep($stepName) }} 返回下一个步骤的实例
{{ $stepper->stepExists($stepName) }} 获取给定名称的步骤是否存在
{{ $stepper->getNumSteps() }} 获取步骤总数
{{ $stepper->getCurrentStepName() }} 获取当前步骤名称
步进对象实现了迭代器接口,因此可以轻松地在其上循环。每个循环都返回一个由Step类实现的StepInterface实例。
@foreach ($stepper as $step) // ... @endforeach
Step类(StepInterface实现及其他可选功能)
{{ $step->getName() }} 返回与步骤关联的名称
{{ $step->getUrl() }} 返回与步骤关联的URL
{{ $step->getRoute() }} 返回与步骤关联的路由
{{ $step->getPosition() }} 返回步骤的位置
{{ $step->getTitle() }} 返回与步骤关联的标题
{{ $step->getDescription() }} 返回与步骤关联的描述
{{ $step->isCurrent() }} 返回是否为当前步骤
{{ $step->isPassed() }} 返回步骤是否在过去
{{ $step->isFirst() }} 返回是否为第一个步骤
{{ $step->isLast() }} 返回是否为最后一个步骤
自定义类
由于我们的步进类的具体类是抽象步进类的子类,因此可以覆盖该步进类的属性和方法。
也可以通过实现StepInterface接口并将在步进类中使用的Step类的名称放入步进类中来非常容易地覆盖Step类。
use Axn\LaravelStepper\Stepper; class BasicStepper extends Stepper { protected $stepClass = 'App\CustomStep'; //... }