mfn / laravel-view-docblock
Laravel 视图 docblock 参数验证
Requires
- php: >=5.6
- illuminate/support: 5.0.x|5.1.x
- illuminate/view: 5.0.x|5.1.x
- mfn/argument-validation: 0.2
- mfn/docblock-normalize: 0.1
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
: 注册额外的验证类型,特定于 LaravelCollectionType
: 支持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