2017 © Pedro Peláez
 

library composer-components

Extending Composer for support install components in Nette.

image

frosty22/composer-components

Extending Composer for support install components in Nette.

  • Wednesday, December 11, 2013
  • by frosty22
  • Repository
  • 1 Watchers
  • 0 Stars
  • 14 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Nette composer components installer

Podpora instalace komponent - JS, CSS a obrázků pomocí composeru. Princip je triviální - komponenta je závislá na generovaném souboru composer.lock, který vždy projde při změně a podívá se po definici extra.component viz příklad níže (syntaxe je inspirovaná komplexnějším systémem Bower, pouze ho velice zjednodušuje a funguje jako triviální náhrada)., (*1)

Všechny soubory komponent zkopíruje do definované složky (defaultně www/components). Dále definované soubory CSS, JS lze přes nette komponentu ComposerComponents/Control/Control vygenerovat v HTML šabloně., (*2)

Příklad rozšíření v composer

Podstatná je pouze ta část extra.component, zde je možné definovat základní složku src. Dále je zde možné definovat JavaScript soubory v scripts, poté CSS soubory vně styles, a dále související soubory, například obrázkyve files., (*3)

{
    "name": "frosty22/xxx",
    "type": "library",
    "require": {
        "php": ">= 5.3.0",
        "nette/nette": "2.*"
    },
    "autoload": {
        "psr-0": {
            "XXX" : "src/"
        }
    },
    "extra": {
        "component" : {
            "src" : "src/",
            "scripts" : [
                    "js/test1.js",
                    "js/test2.js"
            ],
            "styles" : [
                    "css/test1.css",
                    "css/test2.css"
            ],
            "files" : [
                    "img/*"
            ]
        }
    }
}

Příklad definice komponenty

class BasePresenter extends Nette\UI\Presenter {

    /** @var \ComposerComponents\Control\Control $componentsControl */
    protected $componentsControl;

    /** @param \ComposerComponents\Control\Control $componentsControl */
    public function injectComponentsControl(\ComposerComponents\Control\Control $componentsControl)
    {
        $this->componentsControl = $componentsControl;
    }

    /** @return \ComposerComponents\Control\Control */
    protected function createComponentComponents($name)
    {
        return $this->componentsControl;
    }

}

Příklad v šabloně

<html>
    <head>
        {control components}
    </head>
    <body>
        ...
    </body>
</html>

Vykreslí podle příkladu výše:, (*4)

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="/components/test1.css?1380013683" />
        <link rel="stylesheet" type="text/css" href="/components/test2.css?1380013683" />

        <script type="text/javascript" src="/components/test1.js?1380013683"></script>
        <script type="text/javascript" src="/components/test2.js?1380013683"></script>
    </head>
    <body>
        ...
    </body>
</html>

Vykreslení odděleně, (*5)

<html>
    <head>
        {control components:css}
    </head>
    <body>
        ...
        {control components:js}
    </body>
</html>

The Versions

11/12 2013

dev-master

9999999-dev

Extending Composer for support install components in Nette.

  Sources   Download

GPL-3.0 BSD-3-Clause GPL-2.0

The Requires