4

Has anyone been successful getting Joomla running under IIS/Phalanger?

I have gone through the Phalanger 3.0 installation, followed the instructions on making Joomla a app that runs using the Phalanger compiler, but for some reason I get an error before the app even starts up:

Error: Class 'JLogEntry' not found in C:\inetpub\wwwroot\nfspv3\libraries\joomla\log\log.php on line 169, column 4.

I was running Joomla 2.5 on IIS/MySQL prior to installing Phalanger 3.0 so I am wondering if it's an issue with the Phalanger compiler not interpreting the PHP right? Would be good to know if anyone has Joomla working with Phalanger ok.

Lodder
  • 19,758
  • 10
  • 59
  • 100
DevelumPHP
  • 155
  • 1
  • 8

1 Answers1

1

The error is telling you that the class JLogEntry hasn't been defined, yet it has been referenced by something the expects it to be defined. This means a dependency wasn't satisfied. Your log.php is dependant on a file that defines the JLogEntry class. The JLogEntry class is defined in entry.php according to this:

http://www.reference.joomlademo.de/nav.html?_classes/index.html

and this:

http://www.reference.joomlademo.de/nav.html?_classes/index.html

So for whatever reason you're not satisfying that dependency. If I was on your system I'd poke around for that file, check if it exists, is corrupt, correctly versioned, or otherwise prevented from being executed.

If you still suspect something is hinky with your Phalanger compiler then test it. Write a simple "hello world" and prove whether it works or not. Infact do it in the same file (after backing up the file) to prove whether it's executing. The compiler is working at some level or else it wouldn't be showing you error messages.

Edit:

According to @highcore the Phalanger 3.0 compiler fails to implement regular expressions in the way Joomla expects. Joomla relies on this to resolve the filenames it will include. Thus, entry.php is never included leaving JLogEntry undefined. The suggested work around is to avoid reg ex and split the file names.

Community
  • 1
  • 1
candied_orange
  • 7,036
  • 2
  • 28
  • 62
  • @highcore Rather than this providing you a canned fix for your problem this answer is an attempt to point you in the direction of discovering one. It certainly seems you are not alone: http://forum.joomla.org/viewtopic.php?t=680673 – candied_orange Feb 22 '15 at 04:22
  • 1
    @CandledOrange I've been in contact with Phalanger support, and it seems this is an error in the compiler, which incorrectly parses a certain regular expression used by joomla to resolve filenames, which causes the incorrect file name to try to be included and therefore the classes are missing. I've been too busy to post an answer myself, but I already found a workaround (by manually splitting the words without using regex) – Federico Berasategui Feb 22 '15 at 04:33
  • @highcore Ah, well it seems I've arrived to late to help. Good luck. – candied_orange Feb 22 '15 at 04:41
  • Yep. There is issue with Phalanger perl regexp implementation (https://github.com/DEVSENSE/Phalanger/blob/master/Source/ClassLibrary/RegExpPerl.cs) and class names are translated to file paths incorrectly. – Jakub Míšek Feb 26 '15 at 12:56