Giter Club home page Giter Club logo

assets's Introduction

Abandoned

try 68publishers/asset

Build Status Downloads this Month Latest stable Coverage Status

If you need the browser to automatically invalid it's cache, use this extension.

Install via composer:

$ composer require h4kuna/assets

Changelog

  • 1.1.0 nothing required, update nette 3.0
  • 1.0.0 supports PHP 7.1+ (strict types)
  • 0.1.4 0.1.5 newer versions support PHP of version 5.6 and higher
  • 0.1.3 supports PHP 5.3

How to use

For first step you only need to register the extension, other parameters are optional. You have available the new filter asset automatically.

extensions:
	assets: h4kuna\Assets\DI\AssetsExtension

assets:
    # required nothing
    
    # optional
    wwwDir: %wwwDir%
    debugMode: %debugMode%
    tempDir: %tempDir%
    wwwTempDir: %wwwDir%/temp # here is place where move assets from 3rd library (from vendor/ etc.)
    externalAssets:
        - %appDir%/../vendor/nette/nette.js # save to %wwwTempDir%/nette.js
        'ext/nette2.4.js': %appDir%/../vendor/nette/nette.js # save to %wwwTempDir%/ext/nette2.4.js
        
        # download from external source, this is experimental!
        - http://example.com/foo.js # save to %wwwTempDir%/foo.js
        'sha256-secure-token': http://example.com/foo.js # check if is right file

Advantages:

  • $basePath is not needed
  • path is relative to your wwwDir
  • cache is built when new file found, or if you remove %tempDir%/cache/_assets
  • behavior is the same in production and development environment
<link rel="stylesheet" href="{='css/main.css'|asset}">
<script src="{='js/main.js'|asset}"></script>

Example output: ?file mtime.

<link rel="stylesheet" href="/css/main.css?123456">
<script src="/js/main.js?456789"></script>

Printing absolute path to the template can be anabled using double slash:

<link rel="stylesheet" href="{='//css/main.css'|asset}">

Assets

Here is an object that can have dependency anything and collect css and js files for render to template.

/* @var $assets \h4kuna\Assets\Assets */
$assets->addJs('ext/nette2.4.js', ['async' => TRUE]);
echo (string) $assets->renderJs();

render this

<script src="/temp/ext/nette2.4.js?456789" async></script>

Custom cache builder - advanced usege

This creates the cache in the compile time. By default, assets cache is build on the fly:

assetsExtension:
	cacheBuilder: \CacheBuilder

Use prepared interface:

class CacheBuilder implements \h4kuna\Assets\DI\ICacheBuilder
{
	public function create(\h4kuna\Assets\CacheAssets $cache, $wwwDir)
	{
		$finder = Nette\Utils\Finder::findFiles('*')->in($wwwDir . '/config');
		foreach ($finder as $file) {
			/* @var $file \SplFileInfo */
			$cache->load(self::replaceSlashOnWindows($file));
		}
	}


	private static function replaceSlashOnWindows(SplFileInfo $file)
	{
		static $isWindows;
		if ($isWindows === NULL) {
			$isWindows = strtoupper(substr(PHP_OS, 0, 3)) === 'WIN';
		}

		if ($isWindows) {
			return str_replace('\\', '/', $file->getPathname());
		}
		return $file->getPathname();
	}
}

assets's People

Contributors

adaamz avatar h4kuna avatar paveljanda avatar slischka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

paveljanda dlxko

assets's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.