PHPackages                             fritak/nette-dynamic-loader - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. fritak/nette-dynamic-loader

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

fritak/nette-dynamic-loader
===========================

Dynamic loader for nette, using bower.

1.2.2(10y ago)040MITPHPPHP &gt;=5.3.0

Since Mar 30Pushed 10y ago1 watchersCompare

[ Source](https://github.com/Fritak/nette-dynamic-loader)[ Packagist](https://packagist.org/packages/fritak/nette-dynamic-loader)[ Docs](https://github.com/Fritak/nette-dynamic-loader)[ RSS](/packages/fritak-nette-dynamic-loader/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (10)Used By (0)

nette-dynamic-loader
--------------------

[](#nette-dynamic-loader)

This is a dummy dynamic loader for nette.

\##Getting started

1. Download all plugins via bower, install in PATH: PLUGIN\_NAME/css and PLUGIN\_NAME/js (Unfortunately, there is currently no other path possible) You can do it nicely with Bower installer (bower.json):

```
  "dependencies": {
    "jquery": "~2.1.3",
    "jquery-ui": "~1.11.4",
    "bootstrap": "~3.3.4",
  },
  "install": {
    "path": {
        "css": "plugins/{name}/css",
        "js": "plugins/{name}/js",
        "/[sc|le]ss$/": "plugins/{name}/css",
        "eot": "plugins/{name}/fonts",
        "svg": "plugins/{name}/fonts",
        "ttf": "plugins/{name}/fonts",
        "woff": "plugins/{name}/fonts",
        "woff2": "plugins/{name}/fonts",
        "otf": "plugins/{name}/fonts",
        "png":  "plugins/{name}/css/images"
    }
```

2. Prefered install method is via composer

```
composer require fritak/nette-dynamic-loader
```

3. Register at config.neon with parameters a for caching

```
parameters:
    loader:
        bowerJson:  '/var/www/bower.json' # Path to your bower file
        pluginPath: '/var/www/plugins/'   # Path to installed plugins (see item 0)
services:
	- DynamicLoader\Loader(%loader%, @cacheStorage)
```

4. Create component (eg. in BasePresenter)

```
    use DynamicLoader\Loader;

    public function createComponentHeadLoader()
    {
        $component = clone $this->context->getByType('DynamicLoader\Loader');
        $component->renderPosition = Loader::POSITION_HEAD;
        return $component;
    }

    public function createComponentBottomLoader()
    {
        $component = clone $this->context->getByType('DynamicLoader\Loader');
        $component->renderPosition = Loader::POSITION_BOTT;
        return $component;
    }
```

5. Add control to a template (eg. @layout)

```
{control dynamicLoader}
```

6. And that's it! You can control it with following config:

```
parameters:
    loader:
        defaultCSS: DynamicLoader\Loader::POSITION_HEAD #Defaut CSS position
        defaultJS:  DynamicLoader\Loader::POSITION_BOTT #Defaut JS  position
        renderAll:  1                                   # Render ALL added plugins
        bowerJson:  '/var/project/www/bower.json'       # Path to your bower file
        basePath:   '/project/www'                      # If you have different basePath than is default
        pluginPath: '/var/project/www/plugins/'         # Path to installed plugins (see item 0)
        disableBar: 1                                   # You can disable debug bar
        positionsHead:                                  # You can set plugins positions in HEAD OR BOTT directly:
            - 'bootstrap.min.css'
        positionsBott:
            - 'bootstrap.min.js'
```

7. You can set default plugins global

```
        defaultPlugins:
            - 'jquery'
            - 'jquery-ui'
            - 'bootstrap'
```

8. Or in groups. But then you have to set GROUP to a component.

```
        defaultPlugins:
            front:
                - 'jquery'
            backEnd:
                - 'jquery'
                - 'jquery-ui'
                - 'bootstrap'
```

9. If you set defaultPlugins, others won't be loaded. So you have to set them manually in presenters (eg. in HomepagePresenter):

```
    public function __construct()
    {
        $this->enablePlugins = ['jquery-ui'];
        parent::__construct();
    }
```

10. And edit basePresenter:

```
    public $enablePlugins = [];

    public function createComponentHeadLoader()
    {
        $component = clone $this->context->getByType('\DynamicLoader\Loader');
        $component->renderPosition = Loader::POSITION_HEAD;
        $component->enablePlugins = $this->enablePlugins;
        $component->group = 'front';
        return $component;
    }

    public function createComponentBottomLoader()
    {
        $component = clone $this->context->getByType('\DynamicLoader\Loader');
        $component->renderPosition = Loader::POSITION_BOTT;
        $component->enablePlugins = $this->enablePlugins;
        $component->group = 'front';
        return $component;
    }
```

Links
-----

[](#links)

- [Nette framework](http://nette.org/)
- [Bower](http://bower.io/)
- [Bower installer](https://github.com/blittle/bower-installer)
- [Composer](https://getcomposer.org/)

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~8 days

Total

9

Last Release

4004d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/283db6980ccd8ad835cb896ad037c7bd64bcd2d159593ccab02f900a2754acbf?d=identicon)[Fritak](/maintainers/Fritak)

---

Top Contributors

[![Fritak](https://avatars.githubusercontent.com/u/9657317?v=4)](https://github.com/Fritak "Fritak (8 commits)")

---

Tags

loaderbower

### Embed Badge

![Health badge](/badges/fritak-nette-dynamic-loader/health.svg)

```
[![Health](https://phpackages.com/badges/fritak-nette-dynamic-loader/health.svg)](https://phpackages.com/packages/fritak-nette-dynamic-loader)
```

###  Alternatives

[fxp/composer-asset-plugin

NPM/Bower Dependency Manager for Composer

8894.8M41](/packages/fxp-composer-asset-plugin)[m1/env

Env is a lightweight library bringing .env file parser compatibility to PHP. In short - it enables you to read .env files with PHP.

6412.0M21](/packages/m1-env)[lkwdwrd/wp-muplugin-loader

A drop-in MU Plugin loader for WordPress

5847.1k](/packages/lkwdwrd-wp-muplugin-loader)[zonneplan/laravel-module-loader

Module loader for Laravel

24118.4k](/packages/zonneplan-laravel-module-loader)[bueltge/must-use-loader

Load Must-Use Plugins inside subdirectories with caching. For delete the cache: if you view the Must Use plugin list in the network administration.

6115.7k2](/packages/bueltge-must-use-loader)[sarfraznawaz2005/loading

Laravel package to add loading indicator to pages while page is loading.

4811.4k](/packages/sarfraznawaz2005-loading)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
