honda / pushed-resources
Add styles or scripts on the fly
Installs: 1 362
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 2
Requires
- php: ^8
- felixdorn/laravel-render-blade-string: ^1.0
- illuminate/contracts: ^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- gajus/dindent: ^2.0
- orchestra/testbench: ^6.17
- pestphp/pest: ^1.0.5
- phpstan/phpstan: ^0.12.48
- symfony/var-dumper: ^5.2.0
This package is auto-updated.
Last update: 2024-12-10 03:23:52 UTC
README
Installation
You can install the package via composer:
composer require honda/pushed-resources
Usage
Pushing resources
Using Blade
<x-assets-script async src="script.js"/> <x-assets-raw-script> console.log('Hello there!') </x-assets-raw-script> <x-assets-style href=" style.css"/> <x-assets-raw-style> * { background: rebeccapurple } </x-assets-raw-style> <x-assets-blade> @livewireStyles @livewireScripts </x-assets-blade>
Using PHP
use Honda\PushedResources\Resources\Script; use Illuminate\View\ComponentAttributeBag; Script::create() ->value('something.js') ->attributes(['a' => 'b']) // or ->attributes(new ComponentAttributeBag(['a' => 'b']));
Retrieving resources
Using Blade
<x-assets-render type="*"/> <x-assets-render type="script"/> <x-assets-render type="script,raw-script"/> <x-assets-render type="style,raw-style"/> <x-assets-render type="style,raw-style"/>
Using PHP
use Honda\PushedResources\Resources\Script; use Illuminate\View\ComponentAttributeBag; Script::create() ->value('something.js') ->attributes(['a' => 'b']) // or ->attributes(new ComponentAttributeBag(['a' => 'b']));
You can also use
Style
,Script
,RawScript
,RawStyle
,Blade
in the same namespace
Custom Types
A good use case for that is livewire assets, you may not want to those on a page where you are not using Livewire. You could do something like this:
// app/View/Resources/BladeScript or wherever you think it makes sense. class BladeScript extends \Honda\PushedResources\Resources\Blade { public function getTag() : string{ return 'blade-script'; } }
// app/View/Components/BladeScript.php class BladeScript extends \Honda\PushedResources\Components\Blade {}
// in a page with livewire <x-blade-script> <livewire-scripts/> </x-blade-script> // at the bottom of <body> in your layout file <x-assets-render type="blade-script"/>
Testing
composer test
Octane
This package is compatible with Laravel Octane.
Credits
License
The MIT License (MIT). Please see License File for more information. .