podpora netradicnych serverov(websocket, mongrel2)

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

pred nejakym casom som experimentoval so spustanim nette appky v ako sucast websocket servera(konkretne ratchett pisany v php). chcel som tym nahradit ajax. po laborovani a uprave triedy nette\application som dospel k celkom uspokojivemu rieseniu, ale nepodarilo sa mi vyriesit jedinu vec a to generovanie odkazov aj spolu s hostname.

neskor som objavil mongrel2 server, kde sa posielaju requesty pomocou zero mq. tuto uz mi ani len nenapada ako by sa tu dalo napojit nette.

co tym chcem povedat? zda sa mi, ze Application je prilis zavisle od sluzby HttpRequest a nie je mu jednoducho mozne podstrcit custom request objekt a asi tam budu aj ine zavislosti, cim je vlastne nette pouzitelne len na klasickych serveroch(apache, iis, nginx, atd).

symfony2 ma tieto zavislosti celkom pekne dekomponovane a dokonca existuju aj zero mq bindings.

necitim sa byt si velmi isty ohladne kodu application a suvisiacich veci, aby som navrhol nejake zmysluplne riesenie, ale pre niekoho, kto tomu rozumie by to nemal byt az taky problem.

co myslite, stalo by za to riesit to?

bazo
Člen | 620
+
0
-

nikto sa nad tymto este nezamyslal?

Filip Procházka
Moderator | 4668
+
0
-

Nezamýšlel. Ale myslím, že kdyby se zrefaktorovala application, tak by se to snadno dalo :)

Patrik Votoček
Člen | 2221
+
0
-

Nikdo tě nenutí používat Nette\Application\Application které je v Nette implemetované tak aby konvertovalo HttpRequest na PresenterRequest. Můžeš si napsat vlastní která se bude používat tak jak ty potřebuješ.

Uznávám že v tomhle ohledu nette moc vstříc nevychází…

Filip Procházka
Moderator | 4668
+
0
-

Dá se to snadno zrefaktorovat na

class Application
{

	public function run(Nette\Http\Request $httpRequest = NULL,
		Nette\Http\Response $httpResponse = NULL)
	{
		if ($httpRequest === NULL) {
			$httpRequest = $this->httpRequest;
		}
		if ($httpResponse === NULL) {
			$httpResponse = $this->httpResponse;
		}

		// ...
	}

}
bazo
Člen | 620
+
0
-

to je v podstate to co som spravil, ked som rozbiehaval websockety. tu je demo ak by to niekoho zaujimalo https://github.com/…ette-ws-demo

v podstate som tymto chcel len otvorit debatu, ci by nestalo za to podporovat aj taketo netradicnejsie sposoby spustania nette aplikacii out of the box, mozno v niakej vzdialenejsiej buducnosti.

jedna vec s cim som si nevedel rady je ako prinutit nette, aby tvorilo odkazy aj s domenou ked nie su k dispozicii $_SERVER premenne?