5

自上次 joomla 更新到 3.8 以来,我无法通过“NON-Joomla-Script”调用以下函数。

  $db=JFactory::getDBO();

我收到以下错误消息:

致命错误:未捕获的错误:未找到类“JFactory”

我通过 require_once 加载了几个 Joomla 类,这从 Joomla 3.7.x 开始就可以工作,例如:

  require_once("[RootToPath]/libraries/joomla/database/factory.php");

我必须加载哪些 Joomla 类才能再次使用这个类?

谢谢你的帮助。

4

2 回答 2

2

classmap.php 是 Sven 提到的关键。就具体利用它而言,这对我有用:

define( '_JEXEC', 1 );
define( 'JPATH_BASE', '/Full/Server/Path/To/Joomla/Folder' );
require_once ( JPATH_BASE . '/includes/defines.php' );
require_once ( JPATH_BASE . '/includes/framework.php' );

当 framework.php 加载类映射文件时,可以访问 JFactory 和其他“J”项。

于 2017-10-14T02:22:06.463 回答
0

在 Joomla 3.8 中,类结构发生了变化。Jxxx 被替换为“普通”类名。您需要进行一些类映射,以便可以再次找到旧的 Jxxx 名称。

这个类应该让你开始: https ://github.com/joomla/joomla-cms/blob/staging/libraries/classmap.php

于 2017-09-26T05:03:06.260 回答