I'm working with a customised Joomla! 2.5.8 app, and I'm stepping through the code in Eclipse. The code I'm stepping through is in myapp/libraries/joomla/plugin/helper.php, and is in the JPluginHelper::_import
function. The code in question looks like this:
if ($pathExists || file_exists($legacypath))
{
$path = $pathExists ? $path : $legacypath;
if (!isset($paths[$path]))
{
require_once $path;
}
$paths[$path] = true;
The problem code is the require_once
line. The $path
variable contains the name of a file on my system, and I've put breakpoints and logging inside the file before anything else happens, but that code is never executed, and the breakpoint is never hit.
The call stack before that line looks like this:
myapp/libraries/joomla/plugin/helper.php.JPluginHelper::_import() : lineno 171
myapp/libraries/joomla/plugin/helper.php.JPluginHelper::importPlugin() : lineno 125
myapp/components/com_content/views/article/view.html.php.ContentViewArticle->display() : lineno 123
myapp/libraries/joomla/application/component/controller.php.JController->display() : lineno 722
myapp/components/com_content/controller.php.ContentController->display() : lineno 74
myapp/libraries/joomla/application/component/controller.php.JController->execute() : lineno 761
myapp/components/com_content/content.php.require_once() : lineno 16
myapp/libraries/joomla/application/component/helper.php.JComponentHelper::executeComponent() : lineno 383
myapp/libraries/joomla/application/component/helper.php.JComponentHelper::renderComponent() : lineno 351
myapp/includes/application.php.JSite->dispatch() : lineno 197
myapp/index.php.{main}() : lineno 44
Then when I attempt to step into the require_once
bit, the call stack looks like this:
myapp/libraries/joomla/session/storage/database.php.JSessionStorageDatabase->write() : lineno 71
myapp/libraries/joomla/session/storage/database.php.JPluginHelper::_import() : lineno 0
myapp/libraries/joomla/plugin/helper.php.JPluginHelper::importPlugin() : lineno 125
myapp/components/com_content/views/article/view.html.php.ContentViewArticle->display() : lineno 123
myapp/libraries/joomla/application/component/controller.php.JController->display() : lineno 722
myapp/components/com_content/controller.php.ContentController->display() : lineno 74
myapp/libraries/joomla/application/component/controller.php.JController->execute() : lineno 761
myapp/components/com_content/content.php.require_once() : lineno 16
myapp/libraries/joomla/application/component/helper.php.JComponentHelper::executeComponent() : lineno 383
myapp/libraries/joomla/application/component/helper.php.JComponentHelper::renderComponent() : lineno 351
myapp/includes/application.php.JSite->dispatch() : lineno 197
myapp/index.php.{main}() : lineno 44
To make it really clear, the myapp/libraries/joomla/plugin/helper.php.JPluginHelper::_import()
frame is replaced by myapp/libraries/joomla/session/storage/database.php.JPluginHelper::_import()
. PHP gives up and provides no logging at all. I cannot see anything of the site itself.
I'm on Ubuntu, using Apache2, PHP5 and XDebug. It doesn't matter whether or not XDebug is active.
Has anyone encountered this sort of thing before? I don't really want to go back to a standard Joomla! install, and gradually re-import modules, but if that's what I gotta do ...