Nette projekt v ionCube – chyba v nasazení projektu na produkci

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

Ahoj všem.

Chtěl bych se zeptat, zdali máte někdo zkušenosti s prekladem zdrojovych kódů pomocí ionCube do nečitelné podoby a spuštění projektu. Na serveru jsem nainstaloval neonCube loader 5.3 ktery vyžaduje. Zkompiloval jsem to pomoci online nastroje ionCube a pokusil se to rozběhnout.

Aplikace se rozběhla a jakmile začala vytvářet instance tříd z config.neon – services, začla řvát laděnka chyby
Class model\UserDAO used in service 'userDAO' has not been found or is not instantiable

přitom pokud to není preložený tím Encoderem, tak to funguje. Nemáte s tím někdo zkušenosti?

Předem díky za odpovědi.

nyccoss
Člen | 18
+
0
-

Zkoumal jsem to a celý problém je zjevně v robot loaderu. Když jsou třídy zahashované pres IonCube, robot loader je samozřejmě nevidí. Lze v nette použít nějaký jiný loader? ideálně ten, který hledá třídy tak, že souhlasí namespace a filesystémová cesta.

Jen netuším jak na to…

Majkl578
Moderator | 1364
+
0
-

nyccoss napsal(a):

Lze v nette použít nějaký jiný loader?

Jistě, Nette samotné RobotLoader nevyužívá. Většinou ho lidé využívají ve své aplikaci pro načítání věcí v app/, kvůli pohodlí.

ideálně ten, který hledá třídy tak, že souhlasí namespace a filesystémová cesta.

Tomu se říká PSR-0 loader a existuje jich kupa, třeba od Composeru nebo Doctrine.

llook
Člen | 407
+
0
-

Myslím, že autoloading nebude jediný problém. Problém bude také v tom, že prostě neexistuje třída model\UserDAO, IonCube ji přejmenovalo. Pochybuju, že si poradí s instanciací třídy z řetězce (new $className()).

Buďto nepoužívat IonCube, nebo nepoužívat Nette. A nebo strávit dva dny tím, že se to budeš snažit vyřešit a možná se to povede, možná ne. Je otázka, jestli to stojí za to.

Našel jsem, jak to někdo řešil se Symfony – jednak přepsal autoloader a jednak některé části aplikace nechal nezakódované. Ale nevím, jestli to nějak půjde aplikovat na Nette (možná už ani na SF, je to pár let staré) a taky pak ta aplikace bude zakódovaná jen tak napůl: http://forum.symfony-project.org/viewtopic.php?…