mfn/laravel-view-docblock

Laravel 视图 docblock 参数验证

0.2 2015-11-28 12:43 UTC

This package is auto-updated.

Last update: 2024-09-16 17:09:24 UTC


README

主页: https://github.com/mfn/php-laravel-view-docblock

简介

为你的视图添加 docblock,描述模板接受的参数和类型,让库自动处理参数类型验证。

不再担心a)不知道模板接受什么参数,以及b)它们应该是哪种类型。

要求

PHP 5.6 / Laravel 5.0/5.1

安装/设置

使用 composer: composer.phar require mfn/laravel-view-docblock 0.1

在你的 config/app.php 中注册服务提供者,通过添加以下行到你的 providers 条目: Mfn\Laravel\ViewDocblock\Provider::class

注意:建议在 laravel 框架提供者之后,以及自定义提供者之前注册提供者。

发布配置

php artisan vendor:publish --provider="Mfn\Laravel\ViewDocblock\Provider"

示例

而不是

<div class="box-body">
    <div class="box-body">
        <div class='form-group{{ $errors->has("{$lang}.title") ? ' has-error' : '' }}'>
            {!! Form::label("{$lang}[title]", trans('page::pages.form.title')) !!}

添加一个 docblock,指定接受的参数和类型

<?php
use Illuminate\Support\ViewErrorBag;
/**
 * @param ViewErrorBag $errors
 * @param string $lang
 */
?>
<div class="box-body">
    <div class="box-body">
        <div class='form-group{{ $errors->has("{$lang}.title") ? ' has-error' : '' }}'>
            {!! Form::label("{$lang}[title]", trans('page::pages.form.title')) !!}

有关支持的自定义类型的列表,请参阅https://github.com/mfn/php-parameter-validation

配置

  • enable_production: 设置为 true 以在生产环境中启用验证。默认为 false

  • require_docblock_on_data: 设置为 true 以 要求 在每个模板文件上都有 docblock。默认为 false

  • report_missing_arguments: 设置为 true 以报告缺失的参数类型为错误。默认为 false

  • argument_blacklist: 一份应该自动从验证中 排除 的变量列表。对于在所有模板中都可用全局或内部变量很有用。

  • additional_types: 注册额外的验证类型,特定于 Laravel

    • CollectionType: 支持 Collection<SomeObject>。注意:如果提供了内部对象类型(本例中的 SomeObject),则会迭代集合以确保类型匹配!
    • TraversableType: 自动支持实现 Traversable 接口的任何类,如数组。注意:遇到此类类型时,忽略内部类型。

默认设置易于开始使用/集成到现有项目中。要充分发挥库的作用,建议的设置是

  • require_docblock_on_data => true
  • report_missing_arguments => true

然而,Laravel 以传递“全局”变量给所有模板而闻名,例如 $errors 总是可用,这可能会使得将 report_missing_arguments 设置为 true 相当令人烦恼。

贡献

将其分支出来,在功能分支上修改,创建一个拉取请求,做得更好!

没有开发者是孤岛,因此请遵守这些标准

© Markus Fischer markus@fischer.name