canalaiz / sam
Simple Asset Manager for Laravel 5
Requires
- php: >=5.5.9
- guzzlehttp/guzzle: 6.*
- laravel/framework: 5.*
- matthiasmullie/minify: 1.3.*
Requires (Dev)
- orchestra/testbench: ~3.0
- phpunit/phpunit: ~5.0
This package is not auto-updated.
Last update: 2024-11-20 14:52:56 UTC
README
Sam (short for Simple Assets Manager) is a library built for Laravel 5.*. It provides an easy way to add assets (usually stylesheet or javascript files) to the page after it has been rendered.
Sam, by default, uses simple substr and stripos to inject content within the html page. You can override this behaviour binding a different instance to Canalaiz\Sam\Contracts\HtmlInjectEngine
.
Contents
Installation
- In order to install Sam, just add the following to your composer.json. Then run
composer update
:
"canalaiz/sam": "1.*"
- Open your
config/app.php
and add the following to theproviders
array:
Canalaiz\Sam\SamServiceProvider::class,
- In the same
config/app.php
and add the following to thealiases
array:
'Sam' => Canalaiz\Sam\Facades\Sam::class,
- Remember to declare Sam Middleware in
app/Http/Kernel.php
in the generic$middleware
array or within the$middlewareGroups
array:
\Canalaiz\Sam\Middleware\Sam::class,
Usage
You can use Sam in every context you like, since the injection happens after views are rendered and before the html is sent to the browser. The only requirement is to put the use statement:
use Sam;
Css
Css can be appended within document in two different ways: normal and inline. An optional minify
parameter can be passed as second argument to request css minifying. This parameter defaults to false
on Sam::pushCss
and true
to Sam::pushInlineCss
. Minified assets are downloaded first and then served locally.
Css-Normal
The following command appends a stylesheet tag declaration before the closing of the HEAD tag:
Sam::pushCss('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css');
If you need to minify the asset, use this command:
Sam::pushCss('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css', true);
Css-Inline
The following command appends a stylesheet tag declaration before the closing of the HEAD tag, but content of original source url will be directly injected in the html within a tag:
Sam::pushInlineCss('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css');
Javascript
Javascript can be appended within document in two different ways: normal and inline. An optional minify
parameter can be passed as second argument to request css minifying. This parameter defaults to false
on Sam::pushJs
and true
to Sam::pushInlineJs
. Minified assets are downloaded first and then served locally.
Javascript-Normal
The following command appends a script tag declaration before the closing of the BODY tag:
Sam::pushJs('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js');
If you need to minify the asset, use this command:
Sam::pushJs('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js', true);
Javascript-Inline
The following command appends a script tag declaration before the closing of the BODY tag, but content of original source url will be directly injected in the html within a tag:
Sam::pushInlineJs('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js');
Placeholder
A placeholder is an html comment in the format: <!--PLACEHOLDER-->
. The following command prepends an html block before a specific placeholder:
Sam::pushPlaceholder('PLACEHOLDER', '<div>Hello from Sam!</div>');
Tag
The following command appends an html block before the closing of a specific tag.
Sam::pushTag('body', '<div>Hello from Sam!</div>');
License
Simple Asset Manager is free software distributed under the terms of the BSD-3-Clause license. Please refer to license.
Contribution guidelines
Support follows PSR-1 and PSR-4 PHP coding standards, and semantic versioning.
Please report any issue you find in the issues page.
Pull requests are welcome.