Jde rozumně vypnout hlavní cache

snazimse
Člen | 43
+
0
-

Zdravím,

potřeboval bych malou radu…

mám nastaveno

$configurator->setDebugMode(true);

Očekával bych, že ve vývojářském módu to přestane cachovat…
Existuje nějaká možnost v nette jak zakázat vytvaření všech keší?
Tedy defaultně složka /temp

tedy

$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
    ->addDirectory(__DIR__)
    ->register();

Když nastavím např:

$configurator->setTempDirectory(false);

Vše končí errorem s InvalidState…
A kontejner se ani nevytvoří bez toho…

Díky moc předem !

David Matějka
Moderator | 6445
+
0
-

nejde to, do cache se zapisuje zkompilovany kontejner jako php kod, proc to potrebujes?

snazimse
Člen | 43
+
0
-

David Matějka napsal(a):

nejde to, do cache se zapisuje zkompilovany kontejner jako php kod, proc to potrebujes?

Aha, tak chtěl jsem, vidět, jak to jede bez toho a abych nemusel každou službu vypínat zvlášť…

Potřebuju tam hlavně povypínat dočasně doctrine a latte, čili to bude muset vypnout zvlášť?

Jestli bys mohl napsat aspoň jak, jestli třeba removeService nebo to nastavovat v configu apd?

Díky moc !

David Matějka
Moderator | 6445
+
+1
-

treba latte vypnes pres

services:
    latte.latteFactory:
        setup:
            - setTempDirectory(null)

u doctrine zalezi na integraci, kterou pouzivas (nettrine nebo kdyby?).

ale stejne porad zustava otazka: proc potrebujes vypinat cache?

snazimse
Člen | 43
+
0
-

David Matějka napsal(a):

treba latte vypnes pres

services:
    latte.latteFactory:
        setup:
            - setTempDirectory(null)

u doctrine zalezi na integraci, kterou pouzivas (nettrine nebo kdyby?).

ale stejne porad zustava otazka: proc potrebujes vypinat cache?

Kdyby, tak kvuli vyvoji, jinak pak musim mazat rucne, nebo si napsat script na mazani,
coz bych udelal uz davno, ale ve frameworku mi to prijde neeticke :)

Diky moc jeste jednou !

Gappa
Nette Blogger | 198
+
0
-

Kdyby/Doctrine používám (cca defaultně nastavenou), ale s cache na vývoji jsem zatím žádný problém asi neměl, o jaký jde? :)

MajklNajt
Člen | 470
+
0
-

ja mám cache na localhoste nastavnú takto

doctrine:
    metadataCache: array
    queryCache: array
    resultCache: array
    hydrationCache: array
snazimse
Člen | 43
+
0
-

Gappa napsal(a):

Kdyby/Doctrine používám (cca defaultně nastavenou), ale s cache na vývoji jsem zatím žádný problém asi neměl, o jaký jde? :)

No problém je když za vývoje např edituju nějakou entitu, která se někde tahá a rendruje a dojde k chybě, když nevymažu cache, neaktualizuje to změnu apd :)

Jan Mikeš
Člen | 771
+
+2
-

Ono celý skript na mazání cache může vypadat takto bin/clear-cache:

#!/usr/bin/env bash

rm -rf temp/cache/*
rm -rf temp/proxies/*

Potom chmod +x bin/clear-cache a spuštění jednoduše bin/clear-cache :-) rozhodně lepší když už to potřebuješ nutně, než cache vypínat, ale také jsem se nesetkal s mnoha případy, kdy bylo cache potřeba mazat (ano, občas to nastane).

Editoval Jan Mikeš (30. 8. 2018 15:50)

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

Ideálně to, co píše @JanMikeš. My jsme si něco podobného hodili do tracyBar pro pohodlnost. :)

snazimse
Člen | 43
+
0
-

Ok, díky za reakce !

cafesk8
Člen | 103
+
0
-

Zdravím,

dá se v Latte 2.4 také nějak vypnout Latte cache? Toto zde již nefunguje, funkce setTempDirectory požaduje string, NULL nepovoluje: Argument 1 passed to Latte\Engine::setTempDirectory() must be of the type string, null given

	services:
	nette.latteFactory:
		setup:
		- setTempDirectory(null)

David Matějka napsal(a):

treba latte vypnes pres

services:
    latte.latteFactory:
        setup:
            - setTempDirectory(null)

u doctrine zalezi na integraci, kterou pouzivas (nettrine nebo kdyby?).

ale stejne porad zustava otazka: proc potrebujes vypinat cache?

David Matějka
Moderator | 6445
+
0
-

@cafesk8 ahoj, asi myslíš Latte 2.5 – David už to opravil, ale ještě nevydal stable verzi. takže můžeš buď nainstalovat master nebo pingnout @DavidGrudl, jestli by nevydal stable :)

ale když koukám na kód, tak tam není striktní porovnání proti null, takže by mohlo stačit tam poslat empty string - setTempDirectory('')