2017-07-11 24 views
0

私は、他のプロジェクトでそれらを再利用できるように、パッケージ化したいバナーを書きました。Laravel 5 Validatorを適切にパッケージ化するための適切な方法

現在、私はそれらをAppServiceProvider.phpに登録していますが、resources/lang/en/validation.phpと他の言語ファイルでも宣言されている文字列もあります。

バリデータと言語ファイルをパッケージ化する適切な方法は、他のプロジェクトからの消費が最小限に抑えられるようにするためです。

答えて

1

パッケージを作成するときは、パッケージに新しいServiceProviderを作成します。そこにバリデータを登録して翻訳ファイルを読み込むことができます。

ちょうどあなたのようなディレクトリをパッケージ作成:

  • SRC
    • バリ
      • ValidatorX.php
      • ValidatorY.php
    • 翻訳
      • エン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'), 
]) 
関連する問題