Package Data | |
---|---|
Maintainer Username: | mfn |
Maintainer Contact: | markus@fischer.name (Markus Fischer) |
Package Create Date: | 2015-11-21 |
Package Last Update: | 2016-01-28 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-12-11 15:06:51 |
Package Statistics | |
---|---|
Total Downloads: | 12 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 0 |
Total Watchers: | 2 |
Total Forks: | 0 |
Total Open Issues: | 0 |
Homepage: https://github.com/mfn/php-laravel-view-docblock
Add a docblock to your view, describing what parameters and types the template accepts and let the library automatically handle the argument type validation.
Never fear of a) now knowing what arguments a template accepts and b) what types they should be.
PHP 5.6 / Laravel 5.0/5.1
Using composer: composer.phar require mfn/laravel-view-docblock 0.1
Register the service provider in your config/app.php
by add this line to your
providers
entry: Mfn\Laravel\ViewDocblock\Provider::class
Note: it is advisable to register the provider after the laravel framework providers and before your custom ones.
Publish the configuration:
php artisan vendor:publish --provider="Mfn\Laravel\ViewDocblock\Provider"
Instead of:
<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')) !!}
you add a docblock, specifying what parameters and types are accepted:
<?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')) !!}
For a list of supported defaul types, please see https://github.com/mfn/php-parameter-validation
enable_production
: Set to true to enable validation in production too. Defaults to false
.
require_docblock_on_data
: Set to true to require a docblock on every template file. Defaults to false
.
report_missing_arguments
: Set to true to report missing parameter types as errors. Defaults to false
.
argument_blacklist
: A list of variables which should automatically be excluded from the validation. Useful for global or internal variables which are available in all templates.
additional_types
: register additional validation types, specific for Laravel:
CollectionType
: supports Collection<SomeObject>
. Note: if an inner object type is provided (SomeObject
in this example), the collection is iterated to ensure the types match!TraversableType
: transparently supports any class implementing the Traversable
interface like an array. Note: inner types are ignored when encountering such a type.The default settings are for easy getting started/integrating into existing projects. To take full effect of the library, the recommended settings are:
require_docblock_on_data
=> true
report_missing_arguments
=> true
However, undertand that Laravel is notorious in passing "global" variables to
all templates, e.g. $errors
is supposedly always available, which may render
the option report_missing_arguments
being set to true
quite annoying.
Fork it, hack on a feature branch, create a pull request, be awesome!
No developer is an island so adhere to these standards:
© Markus Fischer markus@fischer.name