打包Laravel 5 Validator的正确方法

时间:2017-07-11 18:36:19

标签: php validation laravel-5

我写了一堆我想要打包的验证器,以便我可以在其他项目中重复使用它们。

目前我正在AppServiceProvider.php注册它们,但它们也在resources/lang/en/validation.php中声明了一个字符串以及其他语言文件。

打包验证器和语言文件的正确方法是什么,以便从另一个项目中消耗它们需要最少的设置?

1 个答案:

答案 0 :(得分:1)

创建包时,只需在包中创建一个新的ServiceProvider,您可以在那里注册验证器并加载转换文件。

只需创建包目录,如:

  • SRC
    • 验证器
      • ValidatorX.php
      • ValidatorY.php
    • 翻译
      • EN
      • x.php
      • y.php
    • CustomValidatorServiceProvider.php
<?php

namespace YourNamespace\PackageName;

class CustomValidatorServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        $this->loadTranslationsFrom(__DIR__ . '/translations', 'custom_validators');
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        // register your validators here
    }
}

然后您可以将提供程序添加到config / app.php中,并使用命名空间custom_validators进行包翻译。

trans('custom_validators::x.test');

您还可以将翻译发布到您的应用中:

$this->publishes([
    __DIR__ . '/translations' => resource_path('lang/vendor/custom_validators'),
])