Adresář vendor, jak jej správně použít?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Webster.K
Člen | 212
+
0
-

Zdravím všechny, chtěl bych se zeptat, jak přesně funguje adresař vendor v sandboxu nette. Vím že do toho adresáře musím věci instalovat pres composer, nicméně jak je to třeba se šablonama? Mám totiž jednu starší šablonu a ta obsahuje soubor package.json, jak jí tam dostanu? Klasické překopírování asi vhodné není předpokládám. Navíc používám bootstrap a přišel už jsem na to jak pres composer stahnout bootstrap, takže se mi tam vytvořila s ním složka, ale jak dokážu do dokumentu, ideálně do základní šablony @layout vložit CSS/JS z této složky? používám to teď totiž tak, že v souboru šablony mám v hlavičce:

<script src="{$basePath}/js/main.js"></script>

což mi otevře soubor v ve složce a funguje to správně, když ale bootstrap mam ve složce vendor, což je na stejné úrovni jako www, jak se k němu dostanu? Aby jej aplikace používala? Tedy abych jej měl v hlavičce? Měl jsem za to, že musí být ve složce www vše (obrazky, css, js) aby to aplikace otevřela

Webster.K
Člen | 212
+
0
-

Jen doplním, že bootstrap jsem nainstaloval způsobem composer require twbs/bootstrap, takže ve složce vendor je nová složka twbs a v ní bootstrap a v tom veškteré věci z toho, mimo jiné i CSS/JS popřípadě less soubory, jen nevím, jak je přilinkovat k šabloně, abych to odsud nemusel kopírovat do www/css www/js atd… což mi přijde jako neuvěřitelná kravina…

srigi
Nette Blogger | 558
+
0
-

Na toto sluzi addon Webloader. Priklad ako sa to pouziva je napr. tu

CZechBoY
Člen | 3608
+
0
-

Sablonu bych vlozil normalne pomoci relativni/absolutni cesty.

Webster.K
Člen | 212
+
0
-

Tak to právě dělám, resp „zkompiluju“ less soubory ve složce vendor/twbs/bootstrap na css a js a ty dva soubory dam do www/js a www/css ale neveděl jsem jestli je to takhle dobře, proto se ptam :)

CZechBoY
Člen | 3608
+
0
-

No webloader ti to automaticky vytvori slouceny vsechny css a js do www slozky, sam celkem dobre kontroluje kdy se ma vytvorit novy spjeny soubor – pri zmene nejakeho souboru atd.

greeny
Člen | 405
+
0
-

Bootstrap bys neměl instalovat přes composer. Spíše přes bower.

Editoval greeny (20. 11. 2016 19:51)

David Matějka
Moderator | 6445
+
+4
-

@greeny bower je mrtvej. spise npm nebo yarn :)

Webster.K
Člen | 212
+
0
-

Proc bych neměl instalovat bootstrap pres composer? Neni to ve vysledku to samy? Myslel jsem ze composer slouzi jen k tomu, abych jej ziskal do PC, a je jedno pres co ne?

Pavel Kravčík
Člen | 1196
+
0
-

Protože composer primárně kontroluje závislosti a verze PHP souborů.

Bootstrap nemá PHP soubory. Bower, Yarn, Grunt umí kontrolovat závislosti a verze JS souborů. Tj. máš v aplikaci JQuery 1.6. Composer Ti Bootstrap stáhne, ale až si ho ručně přidáš nebude Ti to fungovat, protože vyžaduje JQuery 2.0. Balíčkovací systémy JS za Tebe tohle ohlídají a navíc Ti automaticky dotahají závislosti, které potřebuješ. Třeba autocomplete.js pro Bootstrap a podobně.

A samozřejmě jsem zapomněl to nejdůležitější – kompilaci a komprimaci do jednoho JS souboru pro produkční verzi.

Editoval Pavel Kravčík (22. 11. 2016 9:04)

Webster.K
Člen | 212
+
0
-

Aha :) tak to je dobrá informace, kterou jsem se bohužel nikde nedozvěděl a vždy si to hlídal sám :/ který z těch všech je tedy v případě bootstrapu nejlepší? Když vemu komplet tedy hlídání verzí, stažení všeho potřebného, kompilaci a komprimaci? Ideálně vše co na něm vyhovuje/nevyhovuje, co je dobré, co naopak ne, je možné takové srovnání? Castecnou roli hraje i komunita okolo, která nástroj udržuje „v chodu“, tedy by mě zajímal váš názor na to, co je nejlepší/nejpoužívanější a proč právě to.

greeny
Člen | 405
+
0
-

Bower mi nepřijde mrtvej… Přes npm instaluji radši jen compile-time závislosti. Tedy například bower, grunt, různé grunt tasky, apod. Bower mi managuje knihovny, které používám na webu. Pro PHP samozřejmě composer. Yarn neznám, ale díky za tip.

Webster.K
Člen | 212
+
0
-

Dostal jsem se opět k adresáři vendor, tentokrát ale z trochu jiné strany, doinstaloval jsem rozšíření (čistě PHP soubory) přes composer ale když v nette použiju třeba: $promena = new autor\rozsireni\funkce(); tak nette hodí chybu: Class ‚App\TestModule\Presenters\autor\rozsireni\funkce‘ not found. Jak to donutím aby to rozšíření bylo hledáno ve složce vendor?

Edit: Nakonec vyřešeno, při přidávání komponenty jsem napsal jen $promenna = new autor\rozsireni\funkce(); pred autor chybelo zpětne lomitko :)

Editoval Webster.K (16. 1. 2017 15:18)

akadlec
Člen | 1326
+
+1
-

a nebo použit use…