Symplinky pro stejné projekty

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

Mám několik stejných projektů, které se liší jen šablonou a adresářem www (a samozřejmě připojením k db).

Abych nemusel každou změnu nahrávat do každé domény, tak mám symlinkové odkazy..
/var/www/domena.tld/ (zde je www, temp,) a libs a app taham z /var/www/final/.
Problém je v tom, že symlink mám jen na /app/models/ a /app/presenters/. Templates mám normálně (je pro každý projekt jiné.

No a samozřejmě to nefunguje bez úprav nette libs.
šablony to totiž hledá místo v /var/www/domena.tld/app/templates v /var/www/final/app/templates.
Musel jsem změnit:

<?php
//loader.php
//define('NETTE_DIR', LIBS_DIR.'/Nette/');
define('NETTE_DIR', dirname(__FILE__));

//presenter.php
public function formatLayoutTemplateFiles() {
…
//$dir = dirname(dirname($this->getReflection()->getFileName()));
$dir = APP_DIR;
…}

public function formatTemplateFiles() {
//$dir = dirname(dirname($this->getReflection()->getFileName()));
$dir = APP_DIR;
}
?>

Jak se toto řeší v praxi? Třeba když když chci hromadně upravit nějaký model nebo presenter, který je všude stejný..

Editoval MzK (29. 11. 2011 11:52)

jansfabik
Člen | 193
+
0
-

btw. nejsou to symplinky, ale symlinky

No a samozřejmě to nefunguje bez úprav nette libs.

Ale funguje, nastuduj si dědičnost. Vytvoř si třídu BasePresenter a do ní dej ty upravené metody.

Jak se toto řeší v praxi? Třeba když když chci hromadně upravit nějaký model nebo presenter, který je všude stejný..

Nejčistší je to asi přes Git a submoduly. Ale na hodně jednoduchý projekty asi postačí i ty symlinky.

MzK
Člen | 127
+
0
-

jansfabik: Díky. toto řešení mi stačí.