2017-07-11 1 views
0

Ich habe eine Reihe von Validatoren geschrieben, die ich verpacken möchte, damit ich sie in anderen Projekten wiederverwenden kann.Richtiger Weg zum Verpacken eines Laravel 5 Validators

Derzeit registriere ich sie in AppServiceProvider.php, aber sie haben auch eine Zeichenfolge in resources/lang/en/validation.php sowie andere Sprachdateien deklariert.

Was ist der richtige Weg, um den Validator AND und die Sprachdateien zu packen, so dass deren Verwendung aus einem anderen Projekt minimal ist?

Antwort

1

Wenn Sie ein Paket erstellen, erstellen Sie einfach einen neuen ServiceProvider im Paket, in dem Sie die Validatoren registrieren und die Übersetzungsdatei (en) laden können.

einfach erstellen Sie verpacken dir wie:

  • src
    • Validatoren
      • ValidatorX.php
      • ValidatorY.php
    • Übersetzungen
      • 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 
    } 
} 

Dann können Sie einfach den Provider hinzufügen Ihren Konfig app.php und verwende den Namespace custom_validators für deine Paketübersetzungen.

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

Sie können auch die Übersetzungen Ihrer App veröffentlichen:

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