Jak se dostat v presenteru k proměnným wwwDir nebo appDir?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Filip Procházka
- Moderator | 4668
Položím ti záludnou otázku: Proč bys to dělal?
Na co ty složky potřebuješ? Nejspíše aby jsi pracoval s nějakými soubory, že? Například s obrázky? Nebylo by lepší napsat si rovnou třídu, která bude řešit práci s obrázky?
class ImageStorage extends Nette\Object
{
private $dir;
public function __construct($dir)
{
$this->dir = $dir;
}
public function save($file, $contents)
{
file_put_contents($this->dir . '/' . $file, $contents);
}
}
(konkrétnější příklad: https://gist.github.com/3845361#…)
v configu
services:
imageStorage: ImageStorage(%wwwDir%/images)
v presenteru
class MyPresenter extends BasePresenter
{
/** @var ImageStorage */
private $imageStorage;
public function injectImages(ImageStorage $storage)
{
$this->imageStorage = $storage;
}
// použití
Výhody? Znovupoužitelnost a jednoduchý přístup k úložišti kdekoliv v aplikaci ;)