dev-master
9999999-devExtending Composer for support install components in Nette.
GPL-3.0 BSD-3-Clause GPL-2.0
The Requires
- php >= 5.3.0
- nette/nette 2.*
by Vít Ledvinka
Extending Composer for support install components in Nette.
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)
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/*" ] } } }
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; } }
<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>
Extending Composer for support install components in Nette.
GPL-3.0 BSD-3-Clause GPL-2.0