Joomla 3.8 - How to call JFactory

2.8k Views Asked by At

Since the last update of joomla to 3.8, i can't call the following function via "NON-Joomla-Script".

  $db=JFactory::getDBO();

I get the following Error Message:

Fatal error: Uncaught Error: Class 'JFactory' not found in

I was loading several Joomla-Classes via require_once and this was working since Joomla 3.7.x, e.g:

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

Which Joomla-Classes do I have to load, to use this class again?

Thanks for your help.

2

There are 2 best solutions below

0
Sven Bluege On

With Joomla 3.8 the class structure changed. Jxxx was replaced with "normal" class names. You need to do some class mapping so old Jxxx names can be located again.

This class should get you started: https://github.com/joomla/joomla-cms/blob/staging/libraries/classmap.php

1
Dayo On

classmap.php is key as mentioned by Sven. In terms of specifically leveraging it, this works for me:

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' );

Gives access to JFactory and the other 'J' Items as framework.php loads the classmap file.