Jak je na tom Nette s podporou HHVM?

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

Jak je na tom Nette v kombinaci s HHVM? Jsem si vědom toho, že dříve se proti HHVM Nette testovalo, ale to už není úplně pravda – jen někde. Hack mě poslední dobou zajímá více a více a chci v něm napsat aplikaci. Pochopil jsem, že není vše 100 % kompatibilní, ale zatím jsem narazil pouze na pár drobných upozornění při hhvm.php7.all = true. Používáte někdo, nebo se to nedoporučuje? Případně má smysl posílat PR se zaměřením na vyřešení kompatibility?

Blujacker
Člen | 89
+
0
-

Ja jsem se na to nedavno ptal na gitteru – nefungovalo mi na hhvm submitovani formulare – pry to je kvuli nekompabilite – https://gitter.im/nette/nette/cs?…https://gitter.im/nette/nette/cs?…

mrtnzlml
Člen | 140
+
0
-

@Blujacker Jo na to si pamatuju, ale zkoušel jsem to a funguje mi to dobře. ContactFormFactory:

public function create((function (UI\Form, Nette\Utils\ArrayHash): void) $onSuccess): UI\Form
{
	$form = $this->factory->create();
	$form->addText('email')->setRequired();
	$form->addSubmit('Send');
	$form->onSuccess[] = function (UI\Form $form, $values) use ($onSuccess) {
		$onSuccess($form, $values);
	};
	return $form;
}

Použití v presenteru:

public function createComponentContactForm(): UI\Form
{
	return $this->factory->create(function(UI\Form $form, Nette\Utils\ArrayHash $values) {
		dump($values->email); //OK
		dump($values);exit; //OK
	});
}

Takže s tímto problém nemám.

Editoval mrtnzlml (18. 6. 2016 23:33)

enumag
Člen | 2118
+
0
-

Jediná věc na kterou na travisu neustále narážím je tahle chyba:

Fatal error: Unpacking unsupported for calls to functions that take any arguments by reference in
...vendor/nette/utils/src/Utils/Callback.php on line 98

https://github.com/…s/issues/110

Editoval enumag (19. 6. 2016 8:53)

mrtnzlml
Člen | 140
+
+1
-

@enumag Také jsem na tento problém narazil, ale to je problém staré verze HHVM. V nové už je to v pořádku (failuje mi test protože Polymer, nikoliv nekompatibilita). Nechá se to opravit takto. Nevýhoda je, že takto se na Travis musí čekat nekonečně dlouho, než se konečně spustí. Ale tak to se dá vyřešit nepoužíváním Travisu (pokud ti to vadí)… :)

enumag
Člen | 2118
+
0
-

@mrtnzlml Pěkný. Co na tom trvá tak dlouho s tím novějším hhvm? Nedá se nějaká ta novější verze (ne nutně nightly ale třeba 3.12 pokud to tam je fixnuté) použít aniž by to trvalo tak dlouho? Zatím jsem to řešil tak že jsem hhvm dovolil failnout což samozřejmě není ideální.

Editoval enumag (19. 6. 2016 10:45)

mrtnzlml
Člen | 140
+
0
-

@enumag Pokud to chápu dobře, tak nedá, protože při této konfiguraci (sudo: required) to Travis nespouští pomocí Dockeru, takže je to pomalejší (podrobnější informace proč to tak je). Vyřešit to můžeš třeba tak, že použiješ Gitlab-CI a postavíš si vlastní image s HHVM na Dockeru.