simonmarcellinden / scriptloader
Package for load dynamically Scripts & Styles
Requires
- illuminate/support: ~7|~8
Requires (Dev)
- orchestra/testbench: ~5|~6
- phpunit/phpunit: ~9.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
With this package you can manage header Styles and Scripts Tags to load from Laravel controllers.
Installation
From the command line run
$ composer require simonmarcellinden/scriptloader
Laravel <= 5.4
Once ScriptLoader is installed you need to register the service provider with the application.
Open up config/app.php and find the providers key.
Add the service provider to config/app.php
SimonMarcelLinden\ScriptLoader\ScriptLoaderServiceProvider::class,
Optionally include the Facade in config/app.php if you'd like.
"ScriptLoader" =>"SimonMarcelLinden\ScriptLoader\Facades\ScriptLoader::class,
Publish the configurations
Run this on the command line from the root of your project:
$ no config needed
A configuration file will be publish to config/scriptloader.php.
Usage
Examples
Add a Script or Style Source directly into your route or controller
app/Http/Controllers/Controller.php
<?php namespace App\Http\Controllers; use Illuminate\Foundation\Bus\DispatchesCommands; use Illuminate\Routing\Controller as BaseController; use Illuminate\Foundation\Validation\ValidatesRequests; use ScriptLoader; abstract class Controller extends BaseController { use DispatchesCommands, ValidatesRequests; public function __construct() { // Defaults ScriptLoader::set("style", asset('css/default.css'), 3); ScriptLoader::set("style", asset('css/app.css'), 1); } }
app/Http/Controllers/HomeController.php
<?php namespace App\Http\Controllers; use ScriptLoader; class HomeController extends Controller { public function index() { // Section description ScriptLoader::set("style", asset('css/home.css'), 2); ScriptLoader::set("script", asset('js/home.js'), 4, "defer"); return view('index'); } public function detail() { // Section description ScriptLoader::set("style", asset('css/details.css'), 2); ScriptLoader::set("script", asset('js/details.js'), 2); return view('detail'); } public function privateProfile() { ScriptLoader::set("style", asset('css/home.css'), 2); ScriptLoader::set("style", asset('css/private.css'), 3); ScriptLoader::set("script", asset('js/private.js'), 4, "defer"); return view('private'); } }
resources/views/layouts/app.blade.php
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Laravel - ScriptLoader</title>
{!! ScriptLoader::load() !!}
</head>
<body>
@yield('content')
</body>
</html>
Change log
Please see the changelog for more information on what has changed recently.
Contributing
Please see contributing.md for details and a todolist.
Security
If you discover any security related issues, please email info@snerve.de instead of using the issue tracker.
Credits
License
MIT. Please see the license file for more information.