我写了一堆我想要打包的验证器,以便我可以在其他项目中重复使用它们。
目前我正在AppServiceProvider.php
注册它们,但它们也在resources/lang/en/validation.php
中声明了一个字符串以及其他语言文件。
打包验证器和语言文件的正确方法是什么,以便从另一个项目中消耗它们需要最少的设置?
答案 0 :(得分:1)
创建包时,只需在包中创建一个新的ServiceProvider,您可以在那里注册验证器并加载转换文件。
只需创建包目录,如:
<?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'),
])