appstract / laravel-blade-directives
Handy Blade directives
Installs: 1 055 803
Dependents: 9
Suggesters: 0
Security: 0
Stars: 860
Watchers: 26
Forks: 75
Open Issues: 6
Requires
- php: >=7.1.3
- laravel/framework: >=5.7
Requires (Dev)
- orchestra/testbench: ~3.7|^4.0|^5.0|^6.0|^7.0
README
A collection of nice Laravel Blade directives.
Installation
You can install the package via composer:
composer require appstract/laravel-blade-directives
Usage
@istrue
Only show when $variable
isset and true.
@istrue($variable) This will be echoed @endistrue
Or when you would like to quickly echo
@istrue($variable, 'This will be echoed')
@isfalse
Same as @istrue
but checks for isset and false.
@isfalse($variable) This will be echoed @endisfalse
@isnull
Only show when $variable
is null.
@isnull($variable) This will be echoed @endisnull
@isnotnull
Same as @isnull
but one shows when $variable
is not null.
@isnotnull($variable) This will be echoed @endisnotnull
@dump and @dd
@dump($var) @dd($var)
@mix
Create a HTML element to your Laravel-Mix css or js.
@mix('/css/app.css') @mix('/js/app.js')
Output:
<link rel="stylesheet" href="{{ mix('/css/app.css') }}"> <script src="{{ mix('/js/app.js') }}"></script>
@style
Create a <style>
element or <link>
element with a css path.
@style body { background: black } @endstyle @style('/css/app.css')
@script
Create a <script>
element with or without a js path.
@script alert('hello world') @endscript @script('/js/app.js')
@inline
Load the contents of a css or js file inline in your view.
@inline('/js/manifest.js')
@pushonce
Same as @push
but will include content one time only. Useful for repeatable blocks.
First parameter must follow the syntax stack-name:group-name
.
@pushonce('js:foobar') <script src="{{ asset('/js/foobar.js') }}"></script> @endpushonce
Include pushes with standard @stack
directive:
@stack('js')
@routeis
Checks if the current route name is equal to the given parameter. You can use a wildcard like blog.post.*
.
@routeis('webshop.checkout') Do something only on the checkout @endrouteis
@routeisnot
Checks if the current route name is not equal to the given parameter. You can use a wildcard like blog.post.*
@routeisnot('webshop.checkout') Do something only if this is not the checkout @endrouteisnot
@instanceof
Checks if the first parameter is an instance of the second parameter.
@instanceof($user, 'App\User') User is an instance of App\User @endinstanceof
@typeof
Checks if the parameter is of a certain type.
@typeof($text, 'string') Text is a string @endtypeof
@repeat
Repeat something a specified amount of times.
@repeat(3) Iteration #{{ $iteration }} @endrepeat
@fa, @fas, @far, @fal, @fab, @fad, @mdi, @glyph
Quickly output an icon with Font Awesome, Material Design Icons or Glyphicon.
@fa('address-book', 'optional-extra-class') // for Font Awesome 5 (solid, regular, light, brand, duotone): @fas('address-book', 'optional-extra-class') @far('address-book', 'optional-extra-class') @fal('address-book', 'optional-extra-class') @fab('address-book', 'optional-extra-class') @fad('address-book', 'optional-extra-class') // for Material Design Icons @mdi('account', 'optional-extra-class') // for Glyphicons @glyph('glass', 'optional-extra-class')
@data
Output data-attributes from an array.
@data(['testing' => 123])
@haserror
Quickly output for classical $errors->has('input_name')
to determine if any error messages exist for a given field.
@haserror('input_name') This input has an error @endhaserror
@count
Output number of entries.
@count([1,2,3])
@nl2br
Replaces \n
into <br>
.
@nl2br('foo\n bar\n baz\n')
@snake, @kebab, @camel
Output formatted string (uses Laravel Helpers).
@snake('fooBar') // output: 'foo_bar' @kebab('fooBar') // output: 'foo-bar' @camel('foo bar') // output: 'fooBar'
Testing
composer test
Contributing
Contributions are welcome, thanks to y'all :)
About Appstract
Appstract is a small team from The Netherlands. We create (open source) tools for Web Developers and write about related subjects on Medium. You can follow us on Twitter, buy us a beer or support us on Patreon.
License
The MIT License (MIT). Please see License File for more information.