frbit/validator-loader-laravel

此包已被弃用,不再维护。未建议替代包。

服务提供者,用于从文件或目录中加载Laravel验证器定义

0.1.3 2014-08-18 11:38 UTC

This package is not auto-updated.

Last update: 2020-01-24 15:22:01 UTC


README

允许您将验证规则源文件(.json、.yml、.php)或结构化到目录中。具有简单的继承功能和变量,可减少重复编写相同的正则表达式(或类似内容)。请参阅Validator Loader包的示例。

安装

$ php composer.phar require "frbit/validator-loader-laravel:*"

现在将服务提供者和外观(如果需要)添加到 app/config/app.php

<?php

return array(
    # ...
    'providers' => array(
        # ...
        'Frbit\ValidatorLoader\Laravel\ValidatorLoaderServiceProvider',
    ),

    # ...
    'aliases' => array(
        # ...
        'ValidatorLoader' => 'Frbit\ValidatorLoader\Laravel\Facade\ValidatorLoader'
    )
)

使用方法

此包提供了一个外观并与IoC 容器进行注册。

请参阅Validator Loader包的readme文件,以获取验证规则示例。

使用外观

在您的模型或控制器中某处

<?php

// get the input for validation
$input = Input::all();

// this returns just the same as Laravel's \Validator::make($input, $rules) would
$validator = \ValidatorLoader::get("my-form", $input);
if ($validator->fails()) {
    # ..
)

使用IoC

在您的模型或控制器中某处

<?php

// get the input for validation
$input = Input::all();

// this returns just the same as Laravel's \Validator::make($input, $rules) would
$loader    = \App::make("validator-loader");
$validator = $loader->get("my-form", $input);
if ($validator->fails()) {
    # ..
)

配置

首先发布配置

$ php artisan config:publish frbit/validator-loader-laravel

您可以在app/config/packages/frbit/validator-loader-laravel中找到配置

文件中的规则

将所有验证规则放在一个文件中。将source设置为file,并在sources.file中编写您的验证规则。

<?php

return array(
    'source'  => 'file',
    'sources' => array(

        // relative paths are considered realtive to app folder
        'file' => 'path/to/file'
    )
);

目录中的规则

当需要大量验证规则或希望有整洁的结构时。将source设置为directory,并在sources.directory中编写您的验证规则。

<?php

return array(
    'source'  => 'directory',
    'sources' => array(

        // relative paths are considered realtive to app folder
        'directory' => 'path/to/directory'
    )
);

数组中的规则

可能是为了测试。将source设置为array,并在sources.array中编写您的验证规则。

<?php

return array(
    'source'  => 'array',
    'sources' => array(
        'array' => array(
            # ..
        )
    )
);

缓存

特别是对于directory源,加载验证规则可能导致每次请求的磁盘I/O增加,从而降低性能。缓存可以减轻这种情况。

<?php

return array(
    // time in minutes -> set to 0 to disable caching
    'cache'     => 123,

    // key name under which cache is stored
    'cache-key' => 'some-key-name',
);