Cesta k souboru ve www na serveru

Allconius
Člen | 313
+
0
-

Ahoj,

potřebuji si vygenerovat obrázek uložený ve složce www


$logo = Image::fromFile('/data/docs/www/html/projekt/www/logo/logo.png');

potřeboval bych tu absolutní cestu nahradit nějakou proměnnou abych mohl projekt přesunout na jiný server a nemusel řešit path. Ideálně nějak takto:


$logo = Image::fromFile($pathtoWWW.'/logo/logo.png');

Našel jsem jen pathURL, ale já bych potřeboval cestu přímo k souboru na serveru, ne přes http

dakur
Člen | 493
+
0
-

Ahoj, cestu k www si definuj v configu a pak předej do service. Např.:

parameters:
	wwwDir: %appDir%/../www # appDir ti zajišťuje nette

services:
	- ImageModel(wwwDir: %wwwDir%)
final class ImageModel
{
	public function __construct(
		private readonly string $wwwDir,
	) {}

	public function store(): void
	{
		$logo = Image::fromFile($this->wwwDir . '/logo/logo.png');
	}

}

Editoval dakur (19. 5. 2023 13:25)

dakur
Člen | 493
+
0
-

Vlastně i %wwwDir% ti zajišťuje nette, tak bys možná mohl využít příp. i to, záleží, kde to máš.

Allconius
Člen | 313
+
0
-

Ahoj, díky vyzkouším

mskocik
Člen | 53
+
-5
-

Alebo mozes nasetovat ako konstantu rovno vo www/index.php:

define('WWW_DIR', __DIR__);

App\Bootstrap::boot()
    ->createContainer()
    ->getByType(Nette\Application\Application::class)
    ->run();
dakur
Člen | 493
+
+1
-

@mskocik To můžeš, akorát tím začleníš konfiguraci přímo do kódu. Lepší návyk je napsat o něco víc kódu, vyplatí se to.

Marek Znojil
Člen | 77
+
+1
-

Tady je i hezký článek přímo na toto téma:
https://blog.nette.org/…anym-sluzbam